mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-23 05:05:53 +12:00
Add Feature pt1
This commit is contained in:
parent
a184e4d735
commit
092534e331
131 changed files with 3113 additions and 1418 deletions
148
HorseIsleServer/LibHISP/Game/Items/Tack.cs
Normal file
148
HorseIsleServer/LibHISP/Game/Items/Tack.cs
Normal file
|
@ -0,0 +1,148 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using System.Text;
|
||||
|
||||
using HISP.Server;
|
||||
|
||||
namespace HISP.Game.Items
|
||||
{
|
||||
public class Tack
|
||||
{
|
||||
public class TackSet
|
||||
{
|
||||
public TackSet()
|
||||
{
|
||||
tackItems = new List<Item.ItemInformation>();
|
||||
}
|
||||
|
||||
public int IconId
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetSaddle().IconId;
|
||||
}
|
||||
}
|
||||
public string SetName;
|
||||
private List<Item.ItemInformation> tackItems;
|
||||
public void Add(Item.ItemInformation item)
|
||||
{
|
||||
Logger.DebugPrint("Added "+item.Name+" To Tack Set: "+this.SetName);
|
||||
tackItems.Add(item);
|
||||
}
|
||||
|
||||
public Item.ItemInformation GetSaddle()
|
||||
{
|
||||
foreach(Item.ItemInformation tackItem in TackItems)
|
||||
{
|
||||
if(tackItem.GetMiscFlag(0) == 1) // Saddle
|
||||
return tackItem;
|
||||
}
|
||||
throw new KeyNotFoundException("Saddle not found.");
|
||||
}
|
||||
|
||||
|
||||
public Item.ItemInformation GetSaddlePad()
|
||||
{
|
||||
foreach(Item.ItemInformation tackItem in TackItems)
|
||||
{
|
||||
if(tackItem.GetMiscFlag(0) == 2) // SaddlePad
|
||||
return tackItem;
|
||||
}
|
||||
throw new KeyNotFoundException("SaddlePad not found.");
|
||||
}
|
||||
|
||||
public Item.ItemInformation GetBridle()
|
||||
{
|
||||
foreach(Item.ItemInformation tackItem in TackItems)
|
||||
{
|
||||
if(tackItem.GetMiscFlag(0) == 3) // Bridle
|
||||
return tackItem;
|
||||
}
|
||||
throw new KeyNotFoundException("GetBridle not found.");
|
||||
}
|
||||
|
||||
public string[] GetSwfNames()
|
||||
{
|
||||
string[] swfs = new string[3];
|
||||
swfs[0] = GetSaddle().EmbedSwf;
|
||||
swfs[1] = GetSaddlePad().EmbedSwf;
|
||||
swfs[2] = GetBridle().EmbedSwf;
|
||||
|
||||
return swfs;
|
||||
}
|
||||
|
||||
public Item.ItemInformation[] TackItems
|
||||
{
|
||||
get
|
||||
{
|
||||
return tackItems.ToArray();
|
||||
}
|
||||
}
|
||||
public int SortPosition()
|
||||
{
|
||||
int pos = 0;
|
||||
foreach(Item.ItemInformation tackitem in TackItems)
|
||||
{
|
||||
foreach(Item.Effects effect in tackitem.Effects)
|
||||
{
|
||||
pos += effect.EffectAmount;
|
||||
}
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
|
||||
private static List<TackSet> tackSets = new List<TackSet>();
|
||||
public static TackSet[] TackSets
|
||||
{
|
||||
get
|
||||
{
|
||||
return tackSets.ToArray();
|
||||
}
|
||||
}
|
||||
public static TackSet GetSetByName(string name)
|
||||
{
|
||||
foreach(TackSet set in tackSets)
|
||||
{
|
||||
if(set.SetName == name)
|
||||
{
|
||||
return set;
|
||||
}
|
||||
}
|
||||
throw new KeyNotFoundException("No TackSet with name: "+name+" was found.");
|
||||
}
|
||||
|
||||
public static void GenerateTackSets()
|
||||
{
|
||||
foreach(Item.ItemInformation itemInfo in Item.Items)
|
||||
{
|
||||
if(itemInfo.Type == "TACK")
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
TackSet set = GetSetByName(Util.CapitalizeFirstLetter(itemInfo.EmbedSwf));
|
||||
set.Add(itemInfo);
|
||||
}
|
||||
catch(KeyNotFoundException)
|
||||
{
|
||||
TackSet tackSet = new TackSet();
|
||||
tackSet.SetName = Util.CapitalizeFirstLetter(itemInfo.EmbedSwf);
|
||||
tackSet.Add(itemInfo);
|
||||
tackSets.Add(tackSet);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
foreach(TackSet set in TackSets)
|
||||
{
|
||||
if(set.TackItems.Length < 3)
|
||||
{
|
||||
Logger.DebugPrint("Removing set: "+set.SetName);
|
||||
tackSets.Remove(set);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue