Example #1
0
 public Character()
 {
     this.equipment = new Equipment(this);
     this.inventory = new Inventory(this);
     this.cargo = new Cargo(this);
     this.skills = new Skills(this);
     this.skillBar = new SkillBar();
     this.community = new Community();
 }
Example #2
0
        //equip an item
        public Boolean equipItem(int fromInvID, int toEquipID, Equipment equip)
        {
            updateInv();
            if(equipping == true)
            {
                fromInvID = seq.IndexOf(8);
                if(fromInvID == -1)
                {
                    Console.WriteLine("Cannot equip item [item index missing]");
                    return false;
                }
            }

            Item itemF;
            //swap if holdingItem
            if(indexHold != -1)
            {
                int saveSwapHash = seq[indexToSwap];
                seq[indexToSwap] = -1;
                seq[nextFreeSequence()] = seq[indexHold];
                seq[indexHold] = saveSwapHash;
                indexHold = -1;
                itemF = holdingItem;
            }
            else
            {
                //remove item from inv
                if(seq[fromInvID] == -1)
                {
                    Console.WriteLine("Cannot equip item [item missing]");
                    return false;
                }
                itemF = inv[seq[fromInvID]];
                if(itemF == null)
                {
                    Console.WriteLine("Cannot equip item [item null(ghost)]");
                    return false;
                }
                removeItemFromInv(seq[fromInvID]);
                seq[fromInvID] = -1;
            }

            ItemData itemE = ItemDataCache.Instance.getItemData(itemF.getItemID());
            Console.WriteLine("to equip slot {0} | itemcate {1}", toEquipID, itemE.getCategory());
            if(!itemE.getClassUsable()[equip.getOwner().getcClass() - 1])
            {
                Console.WriteLine("nie da sie ubrać qq :[ nie dla klasy huj");
                return false;
            }
            if(itemE.getMinLvl() > equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za niski lvlion");
                return false;
            }
            if(itemE.getMaxLvl() < equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za wysoki lvlion");
                return false;
            }
            if(itemE.getFaction() != 0 && equip.getOwner().getFaction() != itemE.getFaction())
            {
                Console.WriteLine("not for yar faction");
                return false;
            }
            short[] equipstats = itemE.getRequirementStats();
            short[] charstats = equip.getOwner().getCStats();
            for(int i = 0;i < 5;i++)
            {
                if(equipstats[i] > charstats[i])
                {
                    Console.WriteLine("nie da sie ubrać qq :[ za niskie staty :<<");
                    return false;
                }
            }
            switch(toEquipID)
            {
                /*0, cap
                1, neck
                2, cape
                3, jacket
                4, pants
                5, armor
                6, brace
                7, wep 1
                8, wep 2
                9, ring 1
                10, ring 2
                11, shoes
                12, bird
                13, tablet
                14, fame pad
                15, mount
                16, bead*/
                case 0:
                {
                    if(itemE.getCategory() != 18)
                        return false;
                    break;
                }
                case 1:
                {
                    if(itemE.getCategory() != 20)
                        return false;
                    break;
                }
                case 2:
                {
                    break;
                }
                case 3:
                {
                    if(itemE.getCategory() != 13)
                        return false;
                    break;
                }
                case 4:
                {
                    if(itemE.getCategory() != 14)
                        return false;
                    break;
                }
                case 5:
                {
                    if(itemE.getCategory() != 15)
                        return false;
                    break;
                }
                case 6:
                {
                    if(itemE.getCategory() != 22)
                        return false;
                    break;
                }
                case 7:
                    case 8:
                    {
                        if(itemE.getCategory() < 1 || itemE.getCategory() > 12)
                            return false;
                        break;
                    }
                case 9:
                    case 10:
                    {
                        if(itemE.getCategory() != 21)
                            return false;
                        break;
                    }
                case 11:
                {
                    if(itemE.getCategory() != 17)
                        return false;
                    break;
                }
                case 12:
                    case 13:
                    {
                        if(itemE.getCategory() != 23 && itemE.getCategory() != 53)
                            return false;
                        break;
                    }
                case 14:
                {
                    break;
                }
                case 15:
                {
                    if(itemE.getCategory() != 52 && itemE.getCategory() != 53 && itemE.getCategory() != 55)
                        return false;
                    break;
                }
                case 16:
                {
                    if(itemE.getCategory() != 47)
                        return false;
                    break;
                }
                default:
                {
                    return false;
                }
            }

            //equip
            if(equip.getEquipments().ContainsKey((byte)toEquipID))
            {
                //8 is imaginary slot
                seq[nextFreeSequence()] = 8;
                putIntoInv(8, 0, equip.getEquipments()[(byte)toEquipID]);
                equip.getEquipments()[(byte)toEquipID] = itemF;
                equipping = true;
            }
            else
            {
                equip.getEquipments()[(byte)toEquipID] = itemF;
            }

            saveInv();
            return true;
        }
Example #3
0
        //unequip an item
        public Boolean unequipItem(int fromEquipID, int line, int row, Equipment equip)
        {
            updateInv();

            //REMOVE FROM EQUIP

            if(!equip.getEquipments().ContainsKey((byte)fromEquipID))
            {
                Console.WriteLine("Cannot unequip item [item missing]");
                return false;
            }
            Item itemF = equip.getEquipments()[(byte)fromEquipID];

            //ADD TO INVENTORY

            //get the hashes from all blocking items
            List<int> hash = this.checkBlockingItems(line, row, itemF);

            //exception in checkBlockingItems
            if(hash == null)
            {
                Console.WriteLine("Cannot unequip item [crosses inventory border]");
                return false;
            }

            //move to an empty slot
            if(hash.Count == 0)
            {
                seq[nextFreeSequence()] = (row * 100) + line;
                putIntoInv(line, row, itemF);
                saveInv();
                equip.getEquipments().Remove((byte)fromEquipID);
                return true;
            }

            //swap
            if(hash.Count == 1)
            {
                indexHold = seq.IndexOf(hash[0]);
                indexToSwap = nextFreeSequence();
                if(indexToSwap == -1)
                {
                    Console.WriteLine("Cannot unequip item [no free space in inv]");
                    return false;
                }
                holdingItem = inv[hash[0]];
                removeItemFromInv(hash[0]);
                putIntoInv(line, row, itemF);
                seq[indexToSwap] = (row * 100) + line;
                seq[indexHold] = -1;
                saveInv();
                equip.getEquipments().Remove((byte)fromEquipID);
                return true;
            }
            Console.WriteLine("Cannot unequip item [too many items blocking]");
            return false;
        }
Example #4
0
        //equip an item
        public Boolean equipItem(int fromInvID, int toEquipID, Equipment equip)
        {
            updateInv();
            if (equipping == true)
            {
                fromInvID = seq.IndexOf(8);
                if (fromInvID == -1)
                {
                    Console.WriteLine("Cannot equip item [item index missing]");
                    return(false);
                }
            }

            Item itemF;

            //swap if holdingItem
            if (indexHold != -1)
            {
                int saveSwapHash = seq[indexToSwap];
                seq[indexToSwap]        = -1;
                seq[nextFreeSequence()] = seq[indexHold];
                seq[indexHold]          = saveSwapHash;
                indexHold = -1;
                itemF     = holdingItem;
            }
            else
            {
                //remove item from inv
                if (seq[fromInvID] == -1)
                {
                    Console.WriteLine("Cannot equip item [item missing]");
                    return(false);
                }
                itemF = inv[seq[fromInvID]];
                if (itemF == null)
                {
                    Console.WriteLine("Cannot equip item [item null(ghost)]");
                    return(false);
                }
                removeItemFromInv(seq[fromInvID]);
                seq[fromInvID] = -1;
            }

            ItemData itemE = ItemDataCache.Instance.getItemData(itemF.getItemID());

            Console.WriteLine("to equip slot {0} | itemcate {1}", toEquipID, itemE.getCategory());
            if (!itemE.getClassUsable()[equip.getOwner().getcClass() - 1])
            {
                Console.WriteLine("nie da sie ubrać qq :[ nie dla klasy huj");
                return(false);
            }
            if (itemE.getMinLvl() > equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za niski lvlion");
                return(false);
            }
            if (itemE.getMaxLvl() < equip.getOwner().getLevel())
            {
                Console.WriteLine("nie da sie ubrać qq :[ za wysoki lvlion");
                return(false);
            }
            if (itemE.getFaction() != 0 && equip.getOwner().getFaction() != itemE.getFaction())
            {
                Console.WriteLine("not for yar faction");
                return(false);
            }
            short[] equipstats = itemE.getRequirementStats();
            short[] charstats  = equip.getOwner().getCStats();
            for (int i = 0; i < 5; i++)
            {
                if (equipstats[i] > charstats[i])
                {
                    Console.WriteLine("nie da sie ubrać qq :[ za niskie staty :<<");
                    return(false);
                }
            }
            switch (toEquipID)
            {
            /*0, cap
             * 1, neck
             * 2, cape
             * 3, jacket
             * 4, pants
             * 5, armor
             * 6, brace
             * 7, wep 1
             * 8, wep 2
             * 9, ring 1
             * 10, ring 2
             * 11, shoes
             * 12, bird
             * 13, tablet
             * 14, fame pad
             * 15, mount
             * 16, bead*/
            case 0:
            {
                if (itemE.getCategory() != 18)
                {
                    return(false);
                }
                break;
            }

            case 1:
            {
                if (itemE.getCategory() != 20)
                {
                    return(false);
                }
                break;
            }

            case 2:
            {
                break;
            }

            case 3:
            {
                if (itemE.getCategory() != 13)
                {
                    return(false);
                }
                break;
            }

            case 4:
            {
                if (itemE.getCategory() != 14)
                {
                    return(false);
                }
                break;
            }

            case 5:
            {
                if (itemE.getCategory() != 15)
                {
                    return(false);
                }
                break;
            }

            case 6:
            {
                if (itemE.getCategory() != 22)
                {
                    return(false);
                }
                break;
            }

            case 7:
            case 8:
            {
                if (itemE.getCategory() < 1 || itemE.getCategory() > 12)
                {
                    return(false);
                }
                break;
            }

            case 9:
            case 10:
            {
                if (itemE.getCategory() != 21)
                {
                    return(false);
                }
                break;
            }

            case 11:
            {
                if (itemE.getCategory() != 17)
                {
                    return(false);
                }
                break;
            }

            case 12:
            case 13:
            {
                if (itemE.getCategory() != 23 && itemE.getCategory() != 53)
                {
                    return(false);
                }
                break;
            }

            case 14:
            {
                break;
            }

            case 15:
            {
                if (itemE.getCategory() != 52 && itemE.getCategory() != 53 && itemE.getCategory() != 55)
                {
                    return(false);
                }
                break;
            }

            case 16:
            {
                if (itemE.getCategory() != 47)
                {
                    return(false);
                }
                break;
            }

            default:
            {
                return(false);
            }
            }

            //equip
            if (equip.getEquipments().ContainsKey((byte)toEquipID))
            {
                //8 is imaginary slot
                seq[nextFreeSequence()] = 8;
                putIntoInv(8, 0, equip.getEquipments()[(byte)toEquipID]);
                equip.getEquipments()[(byte)toEquipID] = itemF;
                equipping = true;
            }
            else
            {
                equip.getEquipments()[(byte)toEquipID] = itemF;
            }

            saveInv();
            return(true);
        }
Example #5
0
 public void setEquipment(Equipment equipment)
 {
     this.equipment = equipment;
 }