protected override void OnValidate() { base.OnValidate(); gameObject.name = equipmentType.ToString() + " Slot"; }
public bool EquipServant(int servantIndex, EQUIPMENT_TYPE equipmentType, int equipmentIndex) { if (equipmentIndex == 0) { DebugLog.Log(false, "Unequip"); return(true); } if (servantDic.ContainsKey(servantIndex) == false) { DebugLog.Log(false, "Invalid Servant Index : " + servantIndex); return(false); } if (equipmentDic.ContainsKey(equipmentIndex) == false) { DebugLog.Log(false, "Invalid Equipment Index : " + equipmentIndex); return(false); } if (equipmentType == EQUIPMENT_TYPE.WEAPON) { if (weaponDic.ContainsKey(equipmentIndex) == false) { DebugLog.Log(false, "Invalid Weapon Index : " + equipmentIndex); return(false); } } else if (equipmentType == EQUIPMENT_TYPE.ARMOR) { if (armorDic.ContainsKey(equipmentIndex) == false) { DebugLog.Log(false, "Invalid Armor Index : " + equipmentIndex); return(false); } } else if (equipmentType == EQUIPMENT_TYPE.ACCESSSORY) { if (accessoryDic.ContainsKey(equipmentIndex) == false) { DebugLog.Log(false, "Invalid Accessory Index : " + equipmentIndex); return(false); } } else { DebugLog.Log(false, "Invalid Equipment Type : " + equipmentType.ToString()); return(false); } if (servantDic[servantIndex].equipmentDic[equipmentType] != 0) { DebugLog.Log(false, "Invalid Equipment is Already Equip"); return(false); } servantDic[servantIndex].equipmentDic[equipmentType] = equipmentIndex; equipmentDic[equipmentIndex].equipServantIndex = servantIndex; equipmentDic[equipmentIndex].state = 2; equipmentDic[equipmentIndex].isEquiped = true; if (equipmentType == EQUIPMENT_TYPE.WEAPON) { weaponDic[equipmentIndex].equipServantIndex = equipmentIndex; weaponDic[equipmentIndex].state = 2; weaponDic[equipmentIndex].isEquiped = true; } else if (equipmentType == EQUIPMENT_TYPE.ARMOR) { armorDic[equipmentIndex].equipServantIndex = equipmentIndex; armorDic[equipmentIndex].state = 2; armorDic[equipmentIndex].isEquiped = true; } else if (equipmentType == EQUIPMENT_TYPE.ACCESSSORY) { accessoryDic[equipmentIndex].equipServantIndex = equipmentIndex; accessoryDic[equipmentIndex].state = 2; accessoryDic[equipmentIndex].isEquiped = true; } return(true); }
public void OnClickChange() { // 선택 서번트 인덱스 int servantIndex = partyInfo.ServantList[partyInfo.selected_unit_idx].index; int equipmentIndex = EquipmentList[selectedItemIdx].index; // 서번트 인덱스 검사 UserServantData servantData = UserDataManager.Inst.GetServantInfo(servantIndex); if (servantData == null) { DebugLog.Log(true, "Invalid Servant Index : " + servantIndex); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Index"); return; } // 장비 타입 검사 if (servantData.equipmentDic.ContainsKey(selectedEquipType) == false) { DebugLog.Log(true, "Invalid Servant Data"); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Data"); return; } // 서번트 동일 장비 검사 if (servantData.equipmentDic[selectedEquipType] == equipmentIndex) { DebugLog.Log(false, "Already Equiped"); SimpleErrorPopupVC.Inst.UpdateErrorText("Already Equiped"); return; } // 장비 인덱스 검사 UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(equipmentIndex); if (equipmentData == null) { DebugLog.Log(true, "Invalid Equipment Index : " + equipmentIndex); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment"); return; } // 장비 인덱스에 대한 타입 검사 if (equipmentData.equipmentType != selectedEquipType) { DebugLog.Log(false, "Invalid Equipment Type : " + selectedEquipType.ToString() + ", "); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment Type"); return; } // 장착중인 장비인지 검사 if (equipmentData.isEquiped == true) { DebugLog.Log(false, "Already ServantEquiped : " + equipmentData.equipServantIndex); SimpleErrorPopupVC.Inst.UpdateErrorText("Already Servant Equiped"); return; } // DB 장비 ID 검사 DBEquipmentData dbEquipmentData = CSVData.Inst.GetEquipmentData(equipmentData.id); if (dbEquipmentData == null) { DebugLog.Log(false, "Invalid Equipment Data ID : " + equipmentData.id); return; } // DB 서번트 ID 검사 DBServantData dbServantData = CSVData.Inst.GetServantData(servantData.id); if (dbServantData == null) { DebugLog.Log(false, "Invalid Servant Data ID : " + servantData.id); return; } // 장착 가능 직업 검사 if (dbEquipmentData.isEquipAble(dbServantData.GetJobFlag) == false) { DebugLog.Log(false, "Invalid Servant Equipable Job : " + dbServantData.GetJobFlag + ", Need Job : " + dbEquipmentData.jobLimit); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Job"); return; } // 장착 가능 레벨 검사 if (dbEquipmentData.tier == 2) { if (servantData.level <= 10) { DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 11"); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 11"); return; } } else if (dbEquipmentData.tier == 3) { if (servantData.level <= 20) { DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 21"); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 21"); return; } } else if (dbEquipmentData.tier == 4) { if (servantData.level <= 30) { DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 31"); SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 31"); return; } } #if UNITY_EDITOR Cheat.Inst.RequestEquipServantCheat(servantIndex, selectedEquipType, equipmentIndex); #else PacketManager.Inst.RequestEquipServant(servantIndex, selectedEquipType, equipmentIndex); #endif }