re-write a bunch of horse releated code...

This commit is contained in:
SilicaAndPina 2021-01-14 01:18:47 +13:00
parent b68103fa41
commit 26fe294f56
8 changed files with 620 additions and 173 deletions

View file

@ -151,6 +151,7 @@
"released_by_message":"Released by %USERNAME%:", "released_by_message":"Released by %USERNAME%:",
"stop_riding_message":"You are now not riding a horse!", "stop_riding_message":"You are now not riding a horse!",
"unequip_tack_message":"You removed the tack off %HORSENAME%.", "unequip_tack_message":"You removed the tack off %HORSENAME%.",
"saved_profile":"Saved profile for horse %HORSENAME%.",
"back_to_horse":"^R1^D5|BACK TO HORSE^R1", "back_to_horse":"^R1^D5|BACK TO HORSE^R1",
"pet_horse":"Your horse whinnies lightly. (+%MOOD% mood / -%TIREDNESS% tiredness)", "pet_horse":"Your horse whinnies lightly. (+%MOOD% mood / -%TIREDNESS% tiredness)",
"pet_horse_too_happy":"Your horse is as happy as it can be now. Your horse whinnies lightly. (+%MOOD% mood / -%TIREDNESS% tiredness)", "pet_horse_too_happy":"Your horse is as happy as it can be now. Your horse whinnies lightly. (+%MOOD% mood / -%TIREDNESS% tiredness)",

View file

@ -5,29 +5,285 @@ namespace HISP.Game.Horse
{ {
class HorseInfo class HorseInfo
{ {
public struct AdvancedStats public class AdvancedStats
{ {
public int Speed; public AdvancedStats(HorseInstance horse, int newSpeed,int newStrength, int newConformation, int newAgility, int newInteligence, int newEndurance, int newPersonality, int newHeight)
public int Strength; {
public int Conformation; if(horse != null)
public int Agility; baseHorse = horse;
public int Endurance; speed = newSpeed;
public int Inteligence; strength = newStrength;
public int Personality; conformation = newConformation;
agility = newAgility;
endurance = newEndurance;
inteligence = newInteligence;
personality = newPersonality;
Height = newHeight;
}
public int Speed
{
get
{
return speed;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Speed * 2) - baseHorse.Breed.BaseStats.Speed))
value = (baseHorse.Breed.BaseStats.Speed - baseHorse.Breed.BaseStats.Speed * 2);
Database.SetHorseSpeed(baseHorse.RandomId, value);
speed = value;
}
}
public int Strength
{
get
{
return strength;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Strength * 2)- baseHorse.Breed.BaseStats.Strength))
value = ((baseHorse.Breed.BaseStats.Strength * 2) - baseHorse.Breed.BaseStats.Strength);
Database.SetHorseStrength(baseHorse.RandomId, value);
strength = value;
}
}
public int Conformation
{
get
{
return conformation;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Conformation * 2) - baseHorse.Breed.BaseStats.Conformation))
value = ((baseHorse.Breed.BaseStats.Conformation * 2) - baseHorse.Breed.BaseStats.Conformation);
Database.SetHorseConformation(baseHorse.RandomId, value);
conformation = value;
}
}
public int Agility
{
get
{
return agility;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Agility * 2) - baseHorse.Breed.BaseStats.Agility))
value = ((baseHorse.Breed.BaseStats.Agility * 2) - baseHorse.Breed.BaseStats.Agility);
Database.SetHorseAgility(baseHorse.RandomId, value);
agility = value;
}
}
public int Endurance
{
get
{
return endurance;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Endurance * 2) - baseHorse.Breed.BaseStats.Endurance))
value = ((baseHorse.Breed.BaseStats.Endurance * 2) - baseHorse.Breed.BaseStats.Endurance);
Database.SetHorseEndurance(baseHorse.RandomId, value);
endurance = value;
}
}
public int Inteligence
{
get
{
return inteligence;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Inteligence* 2) - baseHorse.Breed.BaseStats.Inteligence))
value = ((baseHorse.Breed.BaseStats.Inteligence * 2) - baseHorse.Breed.BaseStats.Inteligence);
Database.SetHorseInteligence(baseHorse.RandomId, value);
inteligence = value;
}
}
public int Personality
{
get
{
return personality;
}
set
{
if (value > ((baseHorse.Breed.BaseStats.Personality * 2) - baseHorse.Breed.BaseStats.Personality))
value = ((baseHorse.Breed.BaseStats.Personality * 2) - baseHorse.Breed.BaseStats.Personality);
Database.SetHorsePersonality(baseHorse.RandomId, value);
personality = value;
}
}
public int Height; public int Height;
public int MinHeight; public int MinHeight;
public int MaxHeight; public int MaxHeight;
private HorseInstance baseHorse;
private int speed;
private int strength;
private int conformation;
private int agility;
private int endurance;
private int inteligence;
private int personality;
} }
public struct BasicStats public class BasicStats
{ {
public int Health; public BasicStats(HorseInstance horse, int newHealth, int newShoes, int newHunger, int newThirst, int newMood, int newGroom, int newTiredness, int newExperience)
public int Shoes; {
public int Hunger; baseHorse = horse;
public int Thirst; health = newHealth;
public int Mood; shoes = newShoes;
public int Groom; hunger = newHunger;
public int Tiredness; thirst = newThirst;
public int Experience; mood = newMood;
groom = newGroom;
tiredness = newTiredness;
experience = newExperience;
}
public int Health
{
get
{
return health;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
health = value;
Database.SetHorseHealth(baseHorse.RandomId, value);
}
}
public int Shoes
{
get
{
return shoes;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
shoes = value;
Database.SetHorseShoes(baseHorse.RandomId, value);
}
}
public int Hunger {
get
{
return hunger;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
hunger = value;
Database.SetHorseHunger(baseHorse.RandomId, value);
}
}
public int Thirst
{
get
{
return thirst;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
hunger = value;
Database.SetHorseThirst(baseHorse.RandomId, value);
}
}
public int Mood
{
get
{
return mood;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
mood = value;
Database.SetHorseMood(baseHorse.RandomId, value);
}
}
public int Groom
{
get
{
return groom;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
groom = value;
Database.SetHorseGroom(baseHorse.RandomId, value);
}
}
public int Tiredness
{
get
{
return tiredness;
}
set
{
if (value > 1000)
value = 1000;
if (value < 0)
value = 0;
tiredness = value;
Database.SetHorseTiredness(baseHorse.RandomId, value);
}
}
public int Experience
{
get
{
return experience;
}
set
{
if (value < 0)
value = 0;
experience = value;
Database.SetHorseExperience(baseHorse.RandomId, value);
}
}
private HorseInstance baseHorse;
private int health;
private int shoes;
private int hunger;
private int thirst;
private int mood;
private int groom;
private int tiredness;
private int experience;
} }
public struct Breed public struct Breed

View file

@ -6,88 +6,82 @@ namespace HISP.Game.Horse
{ {
class HorseInstance class HorseInstance
{ {
public HorseInstance(HorseInfo.Breed breed, int randomId = -1) public HorseInstance(HorseInfo.Breed breed, int randomId = -1, string loadName=null, string loadDescription = "", int loadSpoiled=0)
{ {
RandomId = RandomID.NextRandomId(randomId); RandomId = RandomID.NextRandomId(randomId);
Owner = 0; Owner = 0;
if(breed.Type == "camel") if(loadName == null)
{ {
Name = "Wild Camel";
if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
{
Sex = "cow";
}
else
{
Sex = "bull";
}
} if (breed.Type == "camel")
else if(breed.Type == "llama")
{
Name = "Jungle Llama";
if(GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
{ {
Sex = "male"; name = "Wild Camel";
if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
{
Sex = "cow";
}
else
{
Sex = "bull";
}
}
else if (breed.Type == "llama")
{
name = "Jungle Llama";
if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
{
Sex = "male";
}
else
{
Sex = "female";
}
}
else if (breed.Type == "zebra")
{
name = "Wild Zebra";
if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
{
Sex = "stallion";
}
else
{
Sex = "mare";
}
} }
else else
{ {
Sex = "female"; name = "Wild Horse";
} if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50)
} {
else if(breed.Type == "zebra") Sex = "stallion";
{ }
Name = "Wild Zebra"; else
if (GameServer.RandomNumberGenerator.Next(0, 100) >= 50) {
{ Sex = "mare";
Sex = "stallion"; }
}
else
{
Sex = "mare";
} }
} }
else else
{ {
Name = "Wild Horse"; name = loadName;
if (GameServer.RandomNumberGenerator.Next(0,100) >= 50)
{
Sex = "stallion";
}
else
{
Sex = "mare";
}
} }
Description = ""; description = loadDescription;
Breed = breed; Breed = breed;
Color = breed.Colors[GameServer.RandomNumberGenerator.Next(0, breed.Colors.Length)]; Color = breed.Colors[GameServer.RandomNumberGenerator.Next(0, breed.Colors.Length)];
BasicStats = new HorseInfo.BasicStats(); BasicStats = new HorseInfo.BasicStats(this, 1000, 0, 1000, 1000, 500, 1000, 1000, 0);
BasicStats.Health = 1000; int inteligence = (GameServer.RandomNumberGenerator.Next(breed.BaseStats.Inteligence, breed.BaseStats.Inteligence * 2)) - breed.BaseStats.Inteligence;
BasicStats.Shoes = 0; int personality = (GameServer.RandomNumberGenerator.Next(breed.BaseStats.Personality, breed.BaseStats.Personality * 2)) - breed.BaseStats.Personality;
BasicStats.Hunger = 1000; int height = GameServer.RandomNumberGenerator.Next(breed.BaseStats.MinHeight, breed.BaseStats.MaxHeight);
BasicStats.Thirst = 1000; AdvancedStats = new HorseInfo.AdvancedStats(this, 0, 0, 0, 0, inteligence, 0, personality, height);
BasicStats.Mood = 500;
BasicStats.Groom = 1000;
BasicStats.Tiredness = 1000;
BasicStats.Experience = 0;
AdvancedStats = new HorseInfo.AdvancedStats();
AdvancedStats.Speed = 0;
AdvancedStats.Strength = 0;
AdvancedStats.Conformation = 0;
AdvancedStats.Agility = 0;
AdvancedStats.Endurance = 0;
AdvancedStats.Inteligence = (GameServer.RandomNumberGenerator.Next(breed.BaseStats.Inteligence, breed.BaseStats.Inteligence * 2)) - breed.BaseStats.Inteligence;
AdvancedStats.Personality = (GameServer.RandomNumberGenerator.Next(breed.BaseStats.Personality, breed.BaseStats.Personality * 2)) - breed.BaseStats.Personality;
AdvancedStats.Height = GameServer.RandomNumberGenerator.Next(breed.BaseStats.MinHeight, breed.BaseStats.MaxHeight);
Equipment = new HorseInfo.HorseEquips(); Equipment = new HorseInfo.HorseEquips();
AutoSell = 0; AutoSell = 0;
Category = "KEEPER"; Category = "KEEPER";
Spoiled = 0; spoiled = loadSpoiled;
MagicUsed = 0; MagicUsed = 0;
TrainTimer = 0; TrainTimer = 0;
RanchId = 0; RanchId = 0;
@ -97,8 +91,30 @@ namespace HISP.Game.Horse
public int Leaser; public int Leaser;
public int RandomId; public int RandomId;
public int Owner; public int Owner;
public string Name; public string Name
public string Description; {
get
{
return name;
}
set
{
name = value;
Database.SetHorseName(this.RandomId, name);
}
}
public string Description
{
get
{
return description;
}
set
{
description = value;
Database.SetHorseDescription(this.RandomId, value);
}
}
public string Sex; public string Sex;
public string Color; public string Color;
public int TrainTimer; public int TrainTimer;
@ -107,9 +123,26 @@ namespace HISP.Game.Horse
public HorseInfo.AdvancedStats AdvancedStats; public HorseInfo.AdvancedStats AdvancedStats;
public HorseInfo.HorseEquips Equipment; public HorseInfo.HorseEquips Equipment;
public int AutoSell; public int AutoSell;
public int Spoiled; public int Spoiled
{
get
{
return spoiled;
}
set
{
Database.SetHorseSpoiled(RandomId, value);
spoiled = value;
}
}
public int MagicUsed; public int MagicUsed;
public string Category; public string Category;
private string name;
private string description;
private int spoiled;
} }
} }

View file

@ -213,7 +213,7 @@ namespace HISP.Game
public static string HorseOthers; public static string HorseOthers;
public static string HorseDescriptionEditFormat; public static string HorseDescriptionEditFormat;
public static string HorseSavedProfileMessageFormat;
public static string HorseEquipTackMessageFormat; public static string HorseEquipTackMessageFormat;
public static string HorseUnEquipTackMessageFormat; public static string HorseUnEquipTackMessageFormat;
public static string HorseStopRidingMessage; public static string HorseStopRidingMessage;
@ -430,6 +430,10 @@ namespace HISP.Game
// Click // Click
public static string NothingInterestingHere; public static string NothingInterestingHere;
public static string FormatHorseSavedProfileMessage(string horsename)
{
return HorseSavedProfileMessageFormat.Replace("%HORSENAME%", horsename);
}
public static string FormatDescriptionEditMeta(string username, string description) public static string FormatDescriptionEditMeta(string username, string description)
{ {
return HorseDescriptionEditFormat.Replace("%HORSENAME%", username).Replace("%DESCRIPTION%", description); return HorseDescriptionEditFormat.Replace("%HORSENAME%", username).Replace("%DESCRIPTION%", description);

View file

@ -999,7 +999,7 @@ namespace HISP.Game
{ {
string message = ""; string message = "";
message += Messages.FormatHorseName(horse.Name); message += Messages.FormatHorseName(horse.Name);
message += Messages.FormatHorseDescription(Database.GetUsername(horse.Owner)); message += Messages.FormatHorseDescription(horse.Description);
message += Messages.FormatHorseHandsHigh(horse.Color, horse.Breed.Name, horse.Sex, Convert.ToInt32(Math.Floor(HorseInfo.CalculateHands(horse.AdvancedStats.Height)))); message += Messages.FormatHorseHandsHigh(horse.Color, horse.Breed.Name, horse.Sex, Convert.ToInt32(Math.Floor(HorseInfo.CalculateHands(horse.AdvancedStats.Height))));
message += Messages.FormatHorseExperience(horse.BasicStats.Experience); message += Messages.FormatHorseExperience(horse.BasicStats.Experience);

View file

@ -485,32 +485,38 @@ namespace HISP.Server
int randomId = reader.GetInt32(0); int randomId = reader.GetInt32(0);
int breedId = reader.GetInt32(4); int breedId = reader.GetInt32(4);
HorseInfo.Breed horseBreed = HorseInfo.GetBreedById(breedId); HorseInfo.Breed horseBreed = HorseInfo.GetBreedById(breedId);
HorseInstance inst = new HorseInstance(horseBreed, randomId); string name = reader.GetString(5);
string description = reader.GetString(6);
int spoiled = reader.GetInt32(32);
HorseInstance inst = new HorseInstance(horseBreed, randomId, name, description, spoiled);
inst.Owner = reader.GetInt32(1); inst.Owner = reader.GetInt32(1);
inst.RanchId = reader.GetInt32(2); inst.RanchId = reader.GetInt32(2);
inst.Leaser = reader.GetInt32(3); inst.Leaser = reader.GetInt32(3);
inst.Name = reader.GetString(5);
inst.Description = reader.GetString(6);
inst.Sex = reader.GetString(7); inst.Sex = reader.GetString(7);
inst.Color = reader.GetString(8); inst.Color = reader.GetString(8);
inst.BasicStats.Health = reader.GetInt32(9);
inst.BasicStats.Shoes = reader.GetInt32(10);
inst.BasicStats.Hunger = reader.GetInt32(11);
inst.BasicStats.Thirst = reader.GetInt32(12);
inst.BasicStats.Mood = reader.GetInt32(13);
inst.BasicStats.Groom = reader.GetInt32(14);
inst.BasicStats.Tiredness = reader.GetInt32(15);
inst.BasicStats.Experience = reader.GetInt32(16);
inst.AdvancedStats.Speed = reader.GetInt32(17); int health = reader.GetInt32(9);
inst.AdvancedStats.Strength = reader.GetInt32(18); int shoes = reader.GetInt32(10);
inst.AdvancedStats.Conformation = reader.GetInt32(19); int hunger = reader.GetInt32(11);
inst.AdvancedStats.Agility = reader.GetInt32(20); int thirst = reader.GetInt32(12);
inst.AdvancedStats.Endurance = reader.GetInt32(21); int mood = reader.GetInt32(13);
inst.AdvancedStats.Inteligence = reader.GetInt32(22); int groom = reader.GetInt32(14);
inst.AdvancedStats.Personality = reader.GetInt32(23); int tiredness = reader.GetInt32(15);
inst.AdvancedStats.Height = reader.GetInt32(24); int experience = reader.GetInt32(16);
inst.BasicStats = new HorseInfo.BasicStats(inst, health, shoes, hunger, thirst, mood, groom, tiredness, experience);
int speed = reader.GetInt32(17);
int strength = reader.GetInt32(18);
int conformation = reader.GetInt32(19);
int agility = reader.GetInt32(20);
int endurance = reader.GetInt32(21);
int inteligence = reader.GetInt32(22);
int personality = reader.GetInt32(23);
int height = reader.GetInt32(24);
inst.AdvancedStats = new HorseInfo.AdvancedStats(inst, speed, strength, conformation, agility, inteligence, endurance, personality, height);
if (!reader.IsDBNull(25)) if (!reader.IsDBNull(25))
inst.Equipment.Saddle = Item.GetItemById(reader.GetInt32(25)); inst.Equipment.Saddle = Item.GetItemById(reader.GetInt32(25));
@ -524,7 +530,6 @@ namespace HISP.Server
inst.AutoSell = reader.GetInt32(29); inst.AutoSell = reader.GetInt32(29);
inst.TrainTimer = reader.GetInt32(30); inst.TrainTimer = reader.GetInt32(30);
inst.Category = reader.GetString(31); inst.Category = reader.GetString(31);
inst.Spoiled = reader.GetInt32(32);
inst.MagicUsed = reader.GetInt32(33); inst.MagicUsed = reader.GetInt32(33);
inv.AddHorse(inst, false); inv.AddHorse(inst, false);
@ -883,6 +888,34 @@ namespace HISP.Server
return Weather; return Weather;
} }
} }
public static void SetHorseName(int horseRandomId, string Name)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET name=@name WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@name", Name);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseDescription(int horseRandomId, string Description)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET description=@description WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@description", Description);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseTiredness(int horseRandomId, int Tiredness) public static void SetHorseTiredness(int horseRandomId, int Tiredness)
{ {
using (MySqlConnection db = new MySqlConnection(ConnectionString)) using (MySqlConnection db = new MySqlConnection(ConnectionString))
@ -897,6 +930,76 @@ namespace HISP.Server
sqlCommand.Dispose(); sqlCommand.Dispose();
} }
} }
public static void SetHorseSpeed(int horseRandomId, int Speed)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET speed=@speed WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@speed", Speed);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseStrength(int horseRandomId, int Strength)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET strength=@strength WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@strength", Strength);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseConformation(int horseRandomId, int Conformation)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET conformation=@conformation WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@conformation", Conformation);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseAgility(int horseRandomId, int Agility)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET agility=@agility WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@agility", Agility);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseEndurance(int horseRandomId, int Endurance)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET endurance=@endurance WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@endurance", Endurance);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorsePersonality(int horseRandomId, int Personality) public static void SetHorsePersonality(int horseRandomId, int Personality)
{ {
using (MySqlConnection db = new MySqlConnection(ConnectionString)) using (MySqlConnection db = new MySqlConnection(ConnectionString))
@ -911,6 +1014,20 @@ namespace HISP.Server
sqlCommand.Dispose(); sqlCommand.Dispose();
} }
} }
public static void SetHorseInteligence(int horseRandomId, int Inteligence)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET inteligence=@inteligence WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@inteligence", Inteligence);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseSpoiled(int horseRandomId, int Spoiled) public static void SetHorseSpoiled(int horseRandomId, int Spoiled)
{ {
using (MySqlConnection db = new MySqlConnection(ConnectionString)) using (MySqlConnection db = new MySqlConnection(ConnectionString))
@ -925,6 +1042,34 @@ namespace HISP.Server
sqlCommand.Dispose(); sqlCommand.Dispose();
} }
} }
public static void SetHorseExperience(int horseRandomId, int Experience)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET experience=@experience WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@experience", Experience);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseShoes(int horseRandomId, int Shoes)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET shoes=@shoes WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@shoes", Shoes);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseHeight(int horseRandomId, int Height) public static void SetHorseHeight(int horseRandomId, int Height)
{ {
using (MySqlConnection db = new MySqlConnection(ConnectionString)) using (MySqlConnection db = new MySqlConnection(ConnectionString))
@ -939,20 +1084,6 @@ namespace HISP.Server
sqlCommand.Dispose(); sqlCommand.Dispose();
} }
} }
public static void SetHorseInteligence(int horseRandomId, int Inteligence)
{
using (MySqlConnection db = new MySqlConnection(ConnectionString))
{
db.Open();
MySqlCommand sqlCommand = db.CreateCommand();
sqlCommand.CommandText = "UPDATE Horses SET inteligence=@inteligence WHERE randomId=@randomId";
sqlCommand.Parameters.AddWithValue("@inteligence", Inteligence);
sqlCommand.Parameters.AddWithValue("@randomId", horseRandomId);
sqlCommand.Prepare();
sqlCommand.ExecuteNonQuery();
sqlCommand.Dispose();
}
}
public static void SetHorseMood(int horseRandomId, int Mood) public static void SetHorseMood(int horseRandomId, int Mood)
{ {
using (MySqlConnection db = new MySqlConnection(ConnectionString)) using (MySqlConnection db = new MySqlConnection(ConnectionString))

View file

@ -438,7 +438,7 @@ namespace HISP.Server
int buyPercent = gameData.inns[i].buy_percent; int buyPercent = gameData.inns[i].buy_percent;
Inn inn = new Inn(id, restsOffered, mealsOffered, buyPercent); Inn inn = new Inn(id, restsOffered, mealsOffered, buyPercent);
Logger.DebugPrint("Reigstered Inn: " + inn.Id + " Buying at: " + inn.BuyPercentage.ToString() + "%!"); Logger.DebugPrint("Registered Inn: " + inn.Id + " Buying at: " + inn.BuyPercentage.ToString() + "%!");
} }
int totalPoets = gameData.poetry.Count; int totalPoets = gameData.poetry.Count;
@ -450,7 +450,7 @@ namespace HISP.Server
entry.Room = gameData.poetry[i].room_id; entry.Room = gameData.poetry[i].room_id;
Brickpoet.PoetList.Add(entry); Brickpoet.PoetList.Add(entry);
Logger.DebugPrint("Registed poet: " + entry.Id.ToString() + " word: " + entry.Word + " in room " + entry.Room.ToString()); Logger.DebugPrint("Registered poet: " + entry.Id.ToString() + " word: " + entry.Word + " in room " + entry.Room.ToString());
} }
// Register Horse Breeds // Register Horse Breeds
@ -463,15 +463,15 @@ namespace HISP.Server
horseBreed.Name = gameData.horses.breeds[i].name; horseBreed.Name = gameData.horses.breeds[i].name;
horseBreed.Description = gameData.horses.breeds[i].description; horseBreed.Description = gameData.horses.breeds[i].description;
horseBreed.BaseStats = new HorseInfo.AdvancedStats(); int speed = gameData.horses.breeds[i].base_stats.speed;
horseBreed.BaseStats.Speed = gameData.horses.breeds[i].base_stats.speed; int strength = gameData.horses.breeds[i].base_stats.strength;
horseBreed.BaseStats.Strength = gameData.horses.breeds[i].base_stats.strength; int conformation = gameData.horses.breeds[i].base_stats.conformation;
horseBreed.BaseStats.Conformation = gameData.horses.breeds[i].base_stats.conformation; int agility = gameData.horses.breeds[i].base_stats.agility;
horseBreed.BaseStats.Agility = gameData.horses.breeds[i].base_stats.agility; int inteligence = gameData.horses.breeds[i].base_stats.inteligence;
horseBreed.BaseStats.Endurance = gameData.horses.breeds[i].base_stats.endurance; int endurance = gameData.horses.breeds[i].base_stats.endurance;
horseBreed.BaseStats.Inteligence = gameData.horses.breeds[i].base_stats.inteligence; int personality = gameData.horses.breeds[i].base_stats.personality;
horseBreed.BaseStats.Personality = gameData.horses.breeds[i].base_stats.personality; int height = gameData.horses.breeds[i].base_stats.height;
horseBreed.BaseStats.Height = gameData.horses.breeds[i].base_stats.height; horseBreed.BaseStats = new HorseInfo.AdvancedStats(null, speed, strength, conformation, agility, inteligence, endurance, personality, height);
horseBreed.BaseStats.MinHeight = gameData.horses.breeds[i].base_stats.min_height; horseBreed.BaseStats.MinHeight = gameData.horses.breeds[i].base_stats.min_height;
horseBreed.BaseStats.MaxHeight = gameData.horses.breeds[i].base_stats.max_height; horseBreed.BaseStats.MaxHeight = gameData.horses.breeds[i].base_stats.max_height;
@ -482,7 +482,7 @@ namespace HISP.Server
horseBreed.Type = gameData.horses.breeds[i].type; horseBreed.Type = gameData.horses.breeds[i].type;
HorseInfo.Breeds.Add(horseBreed); HorseInfo.Breeds.Add(horseBreed);
Logger.DebugPrint("Reigistering Horse Breed: #" + horseBreed.Id + ": " + horseBreed.Name); Logger.DebugPrint("Registered Horse Breed: #" + horseBreed.Id + ": " + horseBreed.Name);
} }
int totalCategories = gameData.horses.categorys.Count; int totalCategories = gameData.horses.categorys.Count;
for(int i = 0; i < totalCategories; i++) for(int i = 0; i < totalCategories; i++)
@ -491,7 +491,7 @@ namespace HISP.Server
category.Name = gameData.horses.categorys[i].name; category.Name = gameData.horses.categorys[i].name;
category.Meta = gameData.horses.categorys[i].message; category.Meta = gameData.horses.categorys[i].message;
HorseInfo.HorseCategories.Add(category); HorseInfo.HorseCategories.Add(category);
Logger.DebugPrint("Registering horse category type: " + category.Name); Logger.DebugPrint("Registered horse category type: " + category.Name);
} }
HorseInfo.HorseNames = gameData.horses.names.ToObject<string[]>(); HorseInfo.HorseNames = gameData.horses.names.ToObject<string[]>();
@ -628,6 +628,7 @@ namespace HISP.Server
Messages.HorseTackButtonFormat = gameData.messages.meta.horse.horse_inventory.tack_button; Messages.HorseTackButtonFormat = gameData.messages.meta.horse.horse_inventory.tack_button;
Messages.HorsePetButtonFormat = gameData.messages.meta.horse.horse_inventory.pet_button; Messages.HorsePetButtonFormat = gameData.messages.meta.horse.horse_inventory.pet_button;
Messages.HorseProfileButtonFormat = gameData.messages.meta.horse.horse_inventory.profile_button; Messages.HorseProfileButtonFormat = gameData.messages.meta.horse.horse_inventory.profile_button;
Messages.HorseSavedProfileMessageFormat = gameData.messages.meta.horse.saved_profile;
Messages.HorseNoAutoSell = gameData.messages.meta.horse.horse_inventory.no_auto_sell; Messages.HorseNoAutoSell = gameData.messages.meta.horse.horse_inventory.no_auto_sell;
Messages.HorseAutoSellFormat = gameData.messages.meta.horse.horse_inventory.auto_sell_format; Messages.HorseAutoSellFormat = gameData.messages.meta.horse.horse_inventory.auto_sell_format;

View file

@ -173,24 +173,19 @@ namespace HISP.Server
sender.LoggedinUser.LastViewedHorse = horseInst; sender.LoggedinUser.LastViewedHorse = horseInst;
int randMoodAddition = RandomNumberGenerator.Next(1, 20); int randMoodAddition = RandomNumberGenerator.Next(1, 20);
int randTiredMinus = RandomNumberGenerator.Next(1, 10); int randTiredMinus = RandomNumberGenerator.Next(1, 10);
horseInst.BasicStats.Tiredness -= randTiredMinus;
horseInst.BasicStats.Mood += randMoodAddition;
string message = ""; string message = "";
if(horseInst.BasicStats.Mood < 1000) if(horseInst.BasicStats.Mood + randMoodAddition > 1000)
{
horseInst.BasicStats.Mood = 1000;
message = Messages.FormatHorsePetMessage(randMoodAddition, randTiredMinus); message = Messages.FormatHorsePetMessage(randMoodAddition, randTiredMinus);
}
else else
message = Messages.FormatHorsePetTooHappyMessage(randMoodAddition, randTiredMinus); message = Messages.FormatHorsePetTooHappyMessage(randMoodAddition, randTiredMinus);
if (horseInst.BasicStats.Tiredness < 0)
horseInst.BasicStats.Tiredness = 0;
Database.SetHorseTiredness(horseInst.RandomId, horseInst.BasicStats.Tiredness);
Database.SetHorseMood(horseInst.RandomId, horseInst.BasicStats.Mood); horseInst.BasicStats.Tiredness -= randTiredMinus;
horseInst.BasicStats.Mood += randMoodAddition;
byte[] petMessagePacket = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT); byte[] petMessagePacket = PacketBuilder.CreateChat(message, PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(petMessagePacket); sender.SendPacket(petMessagePacket);
@ -233,53 +228,50 @@ namespace HISP.Server
{ {
switch(effect.EffectsWhat) switch(effect.EffectsWhat)
{ {
case "HUNGER": case "HEALTH":
horseInstance.BasicStats.Hunger += effect.EffectAmount; if (horseInstance.BasicStats.Health + effect.EffectAmount > 1000)
if (horseInstance.BasicStats.Hunger > 1000)
{
horseInstance.BasicStats.Hunger = 1000;
tooMuch = true; tooMuch = true;
} horseInstance.BasicStats.Health += effect.EffectAmount;
Database.SetHorseHunger(horseInstance.RandomId, horseInstance.BasicStats.Hunger);
break; break;
case "THIRST": case "HUNGER":
horseInstance.BasicStats.Thirst += effect.EffectAmount; if (horseInstance.BasicStats.Hunger + effect.EffectAmount > 1000)
if (horseInstance.BasicStats.Thirst > 1000)
{
horseInstance.BasicStats.Thirst = 1000;
tooMuch = true; tooMuch = true;
} horseInstance.BasicStats.Hunger += effect.EffectAmount;
Database.SetHorseThirst(horseInstance.RandomId, horseInstance.BasicStats.Thirst);
break; break;
case "MOOD": case "MOOD":
horseInstance.BasicStats.Mood += effect.EffectAmount; if (horseInstance.BasicStats.Mood + effect.EffectAmount > 1000)
if (horseInstance.BasicStats.Mood > 1000)
{
horseInstance.BasicStats.Mood = 1000;
tooMuch = true; tooMuch = true;
} horseInstance.BasicStats.Mood += effect.EffectAmount;
Database.SetHorseMood(horseInstance.RandomId, horseInstance.BasicStats.Mood); break;
case "GROOM":
if (horseInstance.BasicStats.Groom + effect.EffectAmount > 1000)
tooMuch = true;
horseInstance.BasicStats.Groom += effect.EffectAmount;
break;
case "SHOES":
if (horseInstance.BasicStats.Shoes + effect.EffectAmount > 1000)
tooMuch = true;
horseInstance.BasicStats.Shoes += effect.EffectAmount;
break;
case "THIRST":
if (horseInstance.BasicStats.Thirst + effect.EffectAmount > 1000)
tooMuch = true;
horseInstance.BasicStats.Thirst += effect.EffectAmount;
break; break;
case "TIREDNESS": case "TIREDNESS":
horseInstance.BasicStats.Tiredness += effect.EffectAmount; if (horseInstance.BasicStats.Tiredness + effect.EffectAmount > 1000)
if (horseInstance.BasicStats.Tiredness > 1000)
{
horseInstance.BasicStats.Tiredness = 1000;
tooMuch = true; tooMuch = true;
} horseInstance.BasicStats.Tiredness += effect.EffectAmount;
Database.SetHorseTiredness(horseInstance.RandomId, horseInstance.BasicStats.Tiredness);
break; break;
case "INTELLIGENCEOFFSET": case "INTELLIGENCEOFFSET":
horseInstance.AdvancedStats.Inteligence += effect.EffectAmount; horseInstance.AdvancedStats.Inteligence += effect.EffectAmount;
Database.SetHorseInteligence(horseInstance.RandomId, horseInstance.AdvancedStats.Inteligence);
break; break;
case "PERSONALITYOFFSET": case "PERSONALITYOFFSET":
horseInstance.AdvancedStats.Personality += effect.EffectAmount; horseInstance.AdvancedStats.Personality += effect.EffectAmount;
Database.SetHorsePersonality(horseInstance.RandomId, horseInstance.AdvancedStats.Personality);
break; break;
case "SPOILED": case "SPOILED":
horseInstance.Spoiled += effect.EffectAmount; horseInstance.Spoiled += effect.EffectAmount;
Database.SetHorseSpoiled(horseInstance.RandomId, horseInstance.Spoiled);
break; break;
} }
} }
@ -768,6 +760,25 @@ namespace HISP.Server
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (private notes, wrong size)"); Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (private notes, wrong size)");
break; break;
} }
case 5: // Horse Description
if (dynamicInput.Length >= 3)
{
if(sender.LoggedinUser.LastViewedHorse != null)
{
sender.LoggedinUser.MetaPriority = true;
sender.LoggedinUser.LastViewedHorse.Name = dynamicInput[1];
sender.LoggedinUser.LastViewedHorse.Description = dynamicInput[2];
byte[] horseNameSavedPacket = PacketBuilder.CreateChat(Messages.FormatHorseSavedProfileMessage(sender.LoggedinUser.LastViewedHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT);
sender.SendPacket(horseNameSavedPacket);
UpdateHorseMenu(sender, sender.LoggedinUser.LastViewedHorse);
}
break;
}
else
{
Logger.ErrorPrint(sender.LoggedinUser.Username + " Tried to send a invalid dynamic input (NPC Search, wrong size)");
break;
}
case 4: // NPC Search case 4: // NPC Search
if(dynamicInput.Length >= 2) if(dynamicInput.Length >= 2)
{ {
@ -934,10 +945,25 @@ namespace HISP.Server
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildQuestLog(sender.LoggedinUser)); byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildQuestLog(sender.LoggedinUser));
sender.SendPacket(metaPacket); sender.SendPacket(metaPacket);
break; break;
case "4": // View Horse Breeds
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildHorseList());
sender.SendPacket(metaPacket);
break;
case "5": case "5":
if (sender.LoggedinUser.LastViewedHorse != null) if (sender.LoggedinUser.LastViewedHorse != null)
UpdateHorseMenu(sender, sender.LoggedinUser.LastViewedHorse); UpdateHorseMenu(sender, sender.LoggedinUser.LastViewedHorse);
break; break;
case "11": // Randomize horse name
if (sender.LoggedinUser.LastViewedHorse != null)
{
sender.LoggedinUser.MetaPriority = true;
HorseInstance horseInstance = sender.LoggedinUser.LastViewedHorse;
horseInstance.Name = HorseInfo.GenerateHorseName();
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildHorseDescriptionEditMeta(horseInstance));
sender.SendPacket(metaPacket);
}
break;
case "21": // Private Notes case "21": // Private Notes
sender.LoggedinUser.MetaPriority = true; sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildPrivateNotes(sender.LoggedinUser)); metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildPrivateNotes(sender.LoggedinUser));
@ -980,11 +1006,6 @@ namespace HISP.Server
break; break;
case "31": // Find Ranch case "31": // Find Ranch
break; break;
case "4": // View Horse Breeds
sender.LoggedinUser.MetaPriority = true;
metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildHorseList());
sender.SendPacket(metaPacket);
break;
case "9": // View Tack case "9": // View Tack
break; break;
case "10": // View Competitions case "10": // View Competitions