Exemple #1
0
    public static EquipShort[] GetEquipmentByPart(int id)
    {
        ArrayList wp = new ArrayList();
        int i = 0;
        foreach(DictionaryEntry entry in GameHandler.Instance().weapons)
        {
            if(DataHolder.Weapon((int)entry.Key).equipPart[id])
            {
                wp.Add((int)entry.Key);
                i++;
            }
        }
        ArrayList am = new ArrayList();
        foreach(DictionaryEntry entry in GameHandler.Instance().armors)
        {
            if(DataHolder.Armor((int)entry.Key).equipPart[id])
            {
                am.Add((int)entry.Key);
                i++;
            }
        }

        EquipShort[] es = new EquipShort[i];
        i = 0;
        foreach(int entry in wp)
        {
            es[i] = new EquipShort(EquipSet.WEAPON, entry);
            i++;
        }
        foreach(int entry in am)
        {
            es[i] = new EquipShort(EquipSet.ARMOR, entry);
            i++;
        }
        return es;
    }
Exemple #2
0
 public static EquipShort[] GetEquipment()
 {
     EquipShort[] es = new EquipShort[GameHandler.Instance().weapons.Count+GameHandler.Instance().armors.Count];
     int i = 0;
     foreach(DictionaryEntry entry in GameHandler.Instance().weapons)
     {
         es[i] = new EquipShort(EquipSet.WEAPON, (int)entry.Key);
         i++;
     }
     foreach(DictionaryEntry entry in GameHandler.Instance().armors)
     {
         es[i] = new EquipShort(EquipSet.ARMOR, (int)entry.Key);
         i++;
     }
     return es;
 }
Exemple #3
0
 public int[] GetElementChanges(EquipShort[] equips)
 {
     int[] def = new int[this.element.Length];
     ArrayList set = new ArrayList();
     for(int i=0; i<this.element.Length; i++)
     {
         for(int j=0; j<equips.Length; j++)
         {
             if(!set.Contains(i))
             {
                 Equipment e = equips[j].GetEquipment();
                 if(e != null)
                 {
                     def[i] += e.bonus.GetElementDefence(i);
                     if(SimpleOperator.ADD.Equals(e.elementOperator[i]))
                     {
                         def[i]+= e.elementValue[i];
                     }
                     else if(SimpleOperator.SUB.Equals(e.elementOperator[i]))
                     {
                         def[i] -= e.elementValue[i];
                     }
                     else if(SimpleOperator.SET.Equals(e.elementOperator[i]))
                     {
                         def[i] = e.elementValue[i];
                         set.Add(i);
                     }
                 }
             }
         }
     }
     return def;
 }
Exemple #4
0
 public int[] GetEquipChanges(EquipShort[] equips)
 {
     int[] changes = new int[this.status.Length];
     ArrayList checkedWeapons = new ArrayList();
     ArrayList checkedArmors = new ArrayList();
     for(int i=0; i<equips.Length; i++)
     {
         if(!equips[i].IsNone())
         {
             Equipment eqp = null;
             bool add = true;
             if(equips[i].IsWeapon())
             {
                 eqp = DataHolder.Weapon(equips[i].equipID);
                 if(eqp.IsMulti() && checkedWeapons.Contains(equips[i].equipID))
                 {
                     add = false;
                 }
                 else
                 {
                     checkedWeapons.Add(equips[i].equipID);
                 }
             }
             else if(equips[i].IsArmor())
             {
                 eqp = DataHolder.Armor(equips[i].equipID);
                 if(eqp.IsMulti() && checkedArmors.Contains(equips[i].equipID))
                 {
                     add = false;
                 }
                 else
                 {
                     checkedArmors.Add(equips[i].equipID);
                 }
             }
             if(add)
             {
                 int[] b = eqp.bonus.GetStatusBonus();
                 for(int j=0; j<b.Length; j++)
                 {
                     if(b[j] != 0)
                     {
                         changes[j] += b[j];
                     }
                 }
             }
         }
     }
     return changes;
 }
Exemple #5
0
    public EquipShort[] GetFakeEquip(int partID, int equipID, EquipSet type)
    {
        EquipShort[] equip = new EquipShort[this.equipment.Length];
        for(int i=0; i<equip.Length; i++)
        {
            equip[i] = new EquipShort(this.equipment[i].type, this.equipment[i].equipID);
            equip[i].blocked = this.equipment[i].blocked;
        }

        Equipment eqp = null;
        if(EquipSet.WEAPON.Equals(type))
        {
            eqp = DataHolder.Weapon(equipID);
        }
        else if(EquipSet.ARMOR.Equals(type))
        {
            eqp = DataHolder.Armor(equipID);
        }
        // unequip old
        if(partID >= 0)
        {
            if(equip[partID].IsNone() && equip[partID].blocked)
            {
                partID = equip[partID].equipID;
            }
            if(!equip[partID].IsNone())
            {
                Equipment eqp2 = null;
                if(equip[partID].IsWeapon())
                {
                    eqp2 = DataHolder.Weapon(equip[partID].equipID);
                }
                else if(equip[partID].IsArmor())
                {
                    eqp2 = DataHolder.Armor(equip[partID].equipID);
                }
                if(eqp2.IsSingle())
                {
                    equip[partID].Change(EquipSet.NONE, 0);
                }
                else if(eqp2.IsMulti())
                {
                    for(int i=0; i<eqp2.equipPart.Length; i++)
                    {
                        if(eqp2.equipPart[i])
                        {
                            equip[i].Change(EquipSet.NONE, 0);
                        }
                    }
                }
                for(int i=0; i<eqp2.blockPart.Length; i++)
                {
                    if(eqp2.blockPart[i])
                    {
                        equip[i].Change(EquipSet.NONE, 0);
                    }
                }
            }
        }
        // equip new
        if(eqp != null && eqp.CanEquip(equipID, this))
        {
            // check partID, if -1 get first partID that matches
            if(partID == -1)
            {
                for(int i=0; i<eqp.equipPart.Length; i++)
                {
                    if(eqp.equipPart[i] && DataHolder.Class(this.currentClass).equipPart[i])
                    {
                        partID = i;
                        break;
                    }
                }
            }
            if(eqp.IsSingle())
            {
                equip[partID].Change(type, equipID);
            }
            else if(eqp.IsMulti())
            {
                for(int i=0; i<eqp.equipPart.Length; i++)
                {
                    if(eqp.equipPart[i])
                    {
                        equip[i].Change(type, equipID);
                    }
                }
            }
            for(int i=0; i<eqp.blockPart.Length; i++)
            {
                if(eqp.blockPart[i])
                {
                    equip[i].Change(EquipSet.NONE, partID, true);
                }
            }
        }
        return equip;
    }