Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
		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;
		}
Пример #7
0
        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);
        }