public Api_Result <SlotSetChkResult_Slot> SlotSet(int ship_rid, int slot_rid) { Api_Result <SlotSetChkResult_Slot> api_Result = new Api_Result <SlotSetChkResult_Slot>(); SlotSetChkResult_Slot slotSetChkResult_Slot = this.IsValidSlotSet(ship_rid, slot_rid); if (slotSetChkResult_Slot != SlotSetChkResult_Slot.Ok) { api_Result.state = Api_Result_State.Parameter_Error; api_Result.data = slotSetChkResult_Slot; return(api_Result); } Mem_ship mem_ship = Comm_UserDatas.Instance.User_ship.get_Item(ship_rid); Mem_slotitem mem_slotitem = null; Comm_UserDatas.Instance.User_slot.TryGetValue(slot_rid, ref mem_slotitem); Mem_shipBase mem_shipBase = new Mem_shipBase(mem_ship); Mem_slotitem mem_slotitem2 = null; Comm_UserDatas.Instance.User_slot.TryGetValue(mem_ship.Exslot, ref mem_slotitem2); mem_shipBase.Exslot = slot_rid; if (mem_slotitem2 != null) { mem_slotitem2.UnEquip(); } if (slot_rid != -1) { mem_slotitem.Equip(ship_rid); } mem_ship.Set_ShipParam(mem_shipBase, Mst_DataManager.Instance.Mst_ship.get_Item(mem_shipBase.Ship_id), false); return(api_Result); }
public Api_Result <SlotSetChkResult_Slot> SlotSet(int ship_rid, int slot_rid) { Api_Result <SlotSetChkResult_Slot> api_Result = new Api_Result <SlotSetChkResult_Slot>(); SlotSetChkResult_Slot slotSetChkResult_Slot = IsValidSlotSet(ship_rid, slot_rid); if (slotSetChkResult_Slot != 0) { api_Result.state = Api_Result_State.Parameter_Error; api_Result.data = slotSetChkResult_Slot; return(api_Result); } Mem_ship mem_ship = Comm_UserDatas.Instance.User_ship[ship_rid]; Mem_slotitem value = null; Comm_UserDatas.Instance.User_slot.TryGetValue(slot_rid, out value); Mem_shipBase mem_shipBase = new Mem_shipBase(mem_ship); Mem_slotitem value2 = null; Comm_UserDatas.Instance.User_slot.TryGetValue(mem_ship.Exslot, out value2); mem_shipBase.Exslot = slot_rid; value2?.UnEquip(); if (slot_rid != -1) { value.Equip(ship_rid); } mem_ship.Set_ShipParam(mem_shipBase, Mst_DataManager.Instance.Mst_ship[mem_shipBase.Ship_id], enemy_flag: false); return(api_Result); }
public void ProcessChangeSlotItem(int slotIndex, SlotitemModel slotItem, int voiceType, bool isExSlot) { if (status != ScreenStatus.MODE_SOUBI_HENKOU_PREVIEW) { return; } mRemodelManager.GetSlotitemInfoToChange(focusedShipModel.MemId, slotItem.MemId, slotIndex); SlotSetChkResult_Slot slotSetChkResult_Slot = isExSlot ? mRemodelManager.IsValidChangeSlotitemEx(focusedShipModel.MemId, slotItem.MemId) : mRemodelManager.IsValidChangeSlotitem(focusedShipModel.MemId, slotItem.MemId, slotIndex); bool flag = false; switch (slotSetChkResult_Slot) { case SlotSetChkResult_Slot.Ok: case SlotSetChkResult_Slot.OkBauxiteUse: case SlotSetChkResult_Slot.OkBauxiteUseHighCost: flag = true; break; case SlotSetChkResult_Slot.NgBauxiteShort: AnimateBauxite(ngBauxiteShortMessage); break; case SlotSetChkResult_Slot.NgBausiteShortHighCost: AnimateBauxite(ngBausiteShortHighCostMessage); break; } SlotSetChkResult_Slot slotSetChkResult_Slot2 = isExSlot ? mRemodelManager.ChangeSlotitemEx(focusedShipModel.MemId, slotItem.MemId) : mRemodelManager.ChangeSlotitem(focusedShipModel.MemId, slotItem.MemId, slotIndex); if (flag) { bool flag2 = true; switch (slotSetChkResult_Slot2) { case SlotSetChkResult_Slot.OkBauxiteUse: AnimateBauxite(okBauxiteUseMessage); break; case SlotSetChkResult_Slot.OkBauxiteUseHighCost: AnimateBauxite(okBauxiteUseHighCostMessage); break; default: flag2 = false; break; case SlotSetChkResult_Slot.Ok: break; } if (flag2) { ShipUtils.PlayShipVoice(focusedShipModel, voiceType); } if (SingletonMonoBehaviour <UIPortFrame> .exist()) { SingletonMonoBehaviour <UIPortFrame> .Instance.UpdateHeaderInfo(mRemodelManager); } } Back2SoubiHenkou(); }
public bool IsValidUnsetSlotitemEx(int ship_mem_id) { SlotSetChkResult_Slot slotSetChkResult_Slot = this._api.IsValidSlotSet(ship_mem_id, -1); return(slotSetChkResult_Slot == SlotSetChkResult_Slot.Ok || slotSetChkResult_Slot == SlotSetChkResult_Slot.OkBauxiteUse || slotSetChkResult_Slot == SlotSetChkResult_Slot.OkBauxiteUseHighCost); }
public Api_Result <SlotSetChkResult_Slot> SlotSet(int ship_rid, int slot_rid, int equip_idx) { Api_Result <SlotSetChkResult_Slot> api_Result = new Api_Result <SlotSetChkResult_Slot>(); SlotSetChkResult_Slot slotSetChkResult_Slot = this.IsValidSlotSet(ship_rid, slot_rid, equip_idx); if (slotSetChkResult_Slot != SlotSetChkResult_Slot.Ok) { api_Result.state = Api_Result_State.Parameter_Error; api_Result.data = slotSetChkResult_Slot; return(api_Result); } Mem_ship mem_ship = Comm_UserDatas.Instance.User_ship.get_Item(ship_rid); Mem_slotitem mem_slotitem = null; Comm_UserDatas.Instance.User_slot.TryGetValue(slot_rid, ref mem_slotitem); int num = mem_ship.Slot.FindIndex((int x) => x == -1); if (num != -1 && num < equip_idx) { equip_idx = num; } Mem_shipBase mem_shipBase = new Mem_shipBase(mem_ship); Mem_slotitem mem_slotitem2 = null; Comm_UserDatas.Instance.User_slot.TryGetValue(mem_ship.Slot.get_Item(equip_idx), ref mem_slotitem2); int preCost = 0; int afterCost = 0; OnslotChangeType slotChangeCost = Mst_slotitem_cost.GetSlotChangeCost(mem_ship.Slot.get_Item(equip_idx), slot_rid, out preCost, out afterCost); int num2 = mem_ship.Onslot.get_Item(equip_idx); if (slotChangeCost == OnslotChangeType.OtherToPlane) { num2 = Mst_DataManager.Instance.Mst_ship.get_Item(mem_ship.Ship_id).Maxeq.get_Item(equip_idx); } int slotChangeBauxiteNum = Mst_slotitem_cost.GetSlotChangeBauxiteNum(slotChangeCost, preCost, afterCost, num2); if (slotChangeBauxiteNum < 0) { if (slotChangeCost == OnslotChangeType.PlaneToPlane) { api_Result.data = SlotSetChkResult_Slot.OkBauxiteUseHighCost; } else if (slotChangeCost == OnslotChangeType.OtherToPlane) { api_Result.data = SlotSetChkResult_Slot.OkBauxiteUse; mem_shipBase.Onslot.set_Item(equip_idx, num2); } Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory.Bauxite).Sub_Material(Math.Abs(slotChangeBauxiteNum)); } else { if (slotChangeCost == OnslotChangeType.PlaneOther) { mem_shipBase.Onslot.set_Item(equip_idx, 0); } api_Result.data = SlotSetChkResult_Slot.Ok; Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory.Bauxite).Add_Material(slotChangeBauxiteNum); } mem_shipBase.Slot.set_Item(equip_idx, slot_rid); if (mem_slotitem2 != null) { mem_slotitem2.UnEquip(); } if (slot_rid != -1) { mem_slotitem.Equip(ship_rid); } mem_ship.Set_ShipParam(mem_shipBase, Mst_DataManager.Instance.Mst_ship.get_Item(mem_shipBase.Ship_id), false); if (slot_rid == -1) { mem_ship.TrimSlot(); } return(api_Result); }
public bool IsValidUnsetSlotitem(int ship_mem_id, int slot_index) { SlotSetChkResult_Slot slotSetChkResult_Slot = _api.IsValidSlotSet(ship_mem_id, -1, slot_index); return slotSetChkResult_Slot == SlotSetChkResult_Slot.Ok || slotSetChkResult_Slot == SlotSetChkResult_Slot.OkBauxiteUse || slotSetChkResult_Slot == SlotSetChkResult_Slot.OkBauxiteUseHighCost; }
public Api_Result <SlotSetChkResult_Slot> SlotSet(int ship_rid, int slot_rid, int equip_idx) { Api_Result <SlotSetChkResult_Slot> api_Result = new Api_Result <SlotSetChkResult_Slot>(); SlotSetChkResult_Slot slotSetChkResult_Slot = IsValidSlotSet(ship_rid, slot_rid, equip_idx); if (slotSetChkResult_Slot != 0) { api_Result.state = Api_Result_State.Parameter_Error; api_Result.data = slotSetChkResult_Slot; return(api_Result); } Mem_ship mem_ship = Comm_UserDatas.Instance.User_ship[ship_rid]; Mem_slotitem value = null; Comm_UserDatas.Instance.User_slot.TryGetValue(slot_rid, out value); int num = mem_ship.Slot.FindIndex((int x) => x == -1); if (num != -1 && num < equip_idx) { equip_idx = num; } Mem_shipBase mem_shipBase = new Mem_shipBase(mem_ship); Mem_slotitem value2 = null; Comm_UserDatas.Instance.User_slot.TryGetValue(mem_ship.Slot[equip_idx], out value2); int preCost = 0; int afterCost = 0; OnslotChangeType slotChangeCost = Mst_slotitem_cost.GetSlotChangeCost(mem_ship.Slot[equip_idx], slot_rid, out preCost, out afterCost); int num2 = mem_ship.Onslot[equip_idx]; if (slotChangeCost == OnslotChangeType.OtherToPlane) { num2 = Mst_DataManager.Instance.Mst_ship[mem_ship.Ship_id].Maxeq[equip_idx]; } int slotChangeBauxiteNum = Mst_slotitem_cost.GetSlotChangeBauxiteNum(slotChangeCost, preCost, afterCost, num2); if (slotChangeBauxiteNum < 0) { switch (slotChangeCost) { case OnslotChangeType.PlaneToPlane: api_Result.data = SlotSetChkResult_Slot.OkBauxiteUseHighCost; break; case OnslotChangeType.OtherToPlane: api_Result.data = SlotSetChkResult_Slot.OkBauxiteUse; mem_shipBase.Onslot[equip_idx] = num2; break; } Comm_UserDatas.Instance.User_material[enumMaterialCategory.Bauxite].Sub_Material(Math.Abs(slotChangeBauxiteNum)); } else { if (slotChangeCost == OnslotChangeType.PlaneOther) { mem_shipBase.Onslot[equip_idx] = 0; } api_Result.data = SlotSetChkResult_Slot.Ok; Comm_UserDatas.Instance.User_material[enumMaterialCategory.Bauxite].Add_Material(slotChangeBauxiteNum); } mem_shipBase.Slot[equip_idx] = slot_rid; value2?.UnEquip(); if (slot_rid != -1) { value.Equip(ship_rid); } mem_ship.Set_ShipParam(mem_shipBase, Mst_DataManager.Instance.Mst_ship[mem_shipBase.Ship_id], enemy_flag: false); if (slot_rid == -1) { mem_ship.TrimSlot(); } return(api_Result); }