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(); }
//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; }
//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; }
//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); }
public void setEquipment(Equipment equipment) { this.equipment = equipment; }