public Api_req_Kaisou.RemodelingChkResult ValidRemodeling(int ship_rid, out int reqDrawingNum) { Mem_ship mem_ship = null; reqDrawingNum = 0; if (!Comm_UserDatas.Instance.User_ship.TryGetValue(ship_rid, ref mem_ship)) { return(Api_req_Kaisou.RemodelingChkResult.Invalid); } Mem_deck mem_deck = Enumerable.FirstOrDefault <Mem_deck>(Comm_UserDatas.Instance.User_deck.get_Values(), (Mem_deck x) => x.Ship.Find(ship_rid) != -1); if (mem_deck != null) { if (mem_deck.MissionState != MissionStates.NONE) { return(Api_req_Kaisou.RemodelingChkResult.Mission); } if (mem_deck.IsActionEnd) { return(Api_req_Kaisou.RemodelingChkResult.ActionEndDeck); } } if (Enumerable.Any <Mem_ndock>(Comm_UserDatas.Instance.User_ndock.get_Values(), (Mem_ndock x) => x.Ship_id == ship_rid)) { return(Api_req_Kaisou.RemodelingChkResult.Repair); } Mst_ship mst_ship = Mst_DataManager.Instance.Mst_ship.get_Item(mem_ship.Ship_id); if (mst_ship.Aftershipid <= 0) { return(Api_req_Kaisou.RemodelingChkResult.Invalid); } if (mem_ship.Level < mst_ship.Afterlv) { return(Api_req_Kaisou.RemodelingChkResult.Level); } if (mem_ship.IsBlingShip()) { return(Api_req_Kaisou.RemodelingChkResult.BlingShip); } Mst_shipupgrade mst_shipupgrade = null; if (Mst_DataManager.Instance.Mst_upgrade.TryGetValue(mst_ship.Aftershipid, ref mst_shipupgrade)) { reqDrawingNum = mst_shipupgrade.Drawing_count; } if (mem_ship.Ship_id == 466 || mem_ship.Ship_id == 467) { reqDrawingNum = 0; } if (reqDrawingNum > 0) { Mem_useitem mem_useitem = null; if (!Comm_UserDatas.Instance.User_useItem.TryGetValue(58, ref mem_useitem)) { return(Api_req_Kaisou.RemodelingChkResult.Drawing); } if (mem_useitem.Value < reqDrawingNum) { return(Api_req_Kaisou.RemodelingChkResult.Drawing); } } if (Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory.Steel).Value < mst_ship.Afterfuel) { return(Api_req_Kaisou.RemodelingChkResult.Steel); } if (Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory.Bull).Value < mst_ship.Afterbull) { return(Api_req_Kaisou.RemodelingChkResult.Bull); } int remodelDevKitNum = mst_ship.GetRemodelDevKitNum(); if (Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory.Dev_Kit).Value < remodelDevKitNum) { return(Api_req_Kaisou.RemodelingChkResult.Invalid); } return(Api_req_Kaisou.RemodelingChkResult.OK); }
public RemodelingChkResult ValidRemodeling(int ship_rid, out int reqDrawingNum) { Mem_ship value = null; reqDrawingNum = 0; if (!Comm_UserDatas.Instance.User_ship.TryGetValue(ship_rid, out value)) { return(RemodelingChkResult.Invalid); } Mem_deck mem_deck = Comm_UserDatas.Instance.User_deck.Values.FirstOrDefault((Mem_deck x) => (x.Ship.Find(ship_rid) != -1) ? true : false); if (mem_deck != null) { if (mem_deck.MissionState != 0) { return(RemodelingChkResult.Mission); } if (mem_deck.IsActionEnd) { return(RemodelingChkResult.ActionEndDeck); } } if (Comm_UserDatas.Instance.User_ndock.Values.Any((Mem_ndock x) => x.Ship_id == ship_rid)) { return(RemodelingChkResult.Repair); } Mst_ship mst_ship = Mst_DataManager.Instance.Mst_ship[value.Ship_id]; if (mst_ship.Aftershipid <= 0) { return(RemodelingChkResult.Invalid); } if (value.Level < mst_ship.Afterlv) { return(RemodelingChkResult.Level); } if (value.IsBlingShip()) { return(RemodelingChkResult.BlingShip); } Mst_shipupgrade value2 = null; if (Mst_DataManager.Instance.Mst_upgrade.TryGetValue(mst_ship.Aftershipid, out value2)) { reqDrawingNum = value2.Drawing_count; } if (value.Ship_id == 466 || value.Ship_id == 467) { reqDrawingNum = 0; } if (reqDrawingNum > 0) { Mem_useitem value3 = null; if (!Comm_UserDatas.Instance.User_useItem.TryGetValue(58, out value3)) { return(RemodelingChkResult.Drawing); } if (value3.Value < reqDrawingNum) { return(RemodelingChkResult.Drawing); } } if (Comm_UserDatas.Instance.User_material[enumMaterialCategory.Steel].Value < mst_ship.Afterfuel) { return(RemodelingChkResult.Steel); } if (Comm_UserDatas.Instance.User_material[enumMaterialCategory.Bull].Value < mst_ship.Afterbull) { return(RemodelingChkResult.Bull); } int remodelDevKitNum = mst_ship.GetRemodelDevKitNum(); if (Comm_UserDatas.Instance.User_material[enumMaterialCategory.Dev_Kit].Value < remodelDevKitNum) { return(RemodelingChkResult.Invalid); } return(RemodelingChkResult.OK); }