Exemplo n.º 1
0
        private bool _Supply(Api_req_Hokyu.enumHokyuType type)
        {
            Api_Result <bool> api_Result = new Api_req_Hokyu().Charge(_checked_ships, type);

            if (api_Result.state == Api_Result_State.Success)
            {
                _checked_ships = new List <int>();
                for (int i = 0; i < _target_ships.Count; i++)
                {
                    _checkbox_states[i] = _GetCheckBoxStatus(_target_ships[i], _selected_deck);
                }
                _CalcMaterialForSupply();
                _SetCheckBoxAllState();
                return(api_Result.data);
            }
            return(false);
        }
Exemplo n.º 2
0
        private bool ChargeDataSet(Api_req_Hokyu.enumHokyuType type, Mem_ship m_ship)
        {
            enumMaterialCategory enumMaterialCategory;
            int value;
            int num2;
            int fuel;
            int bull;

            if (type == Api_req_Hokyu.enumHokyuType.Fuel)
            {
                enumMaterialCategory = enumMaterialCategory.Fuel;
                int num = Mst_DataManager.Instance.Mst_ship.get_Item(m_ship.Ship_id).Fuel_max;
                value = Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory).Value;
                num2  = m_ship.GetRequireChargeFuel();
                fuel  = num;
                bull  = m_ship.Bull;
            }
            else
            {
                if (type != Api_req_Hokyu.enumHokyuType.Bull)
                {
                    return(true);
                }
                enumMaterialCategory = enumMaterialCategory.Bull;
                int num = Mst_DataManager.Instance.Mst_ship.get_Item(m_ship.Ship_id).Bull_max;
                value = Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory).Value;
                num2  = m_ship.GetRequireChargeBull();
                fuel  = m_ship.Fuel;
                bull  = num;
            }
            if (value <= 0)
            {
                return(false);
            }
            if (num2 == 0)
            {
                return(true);
            }
            if (num2 > value)
            {
                return(true);
            }
            Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory).Sub_Material(num2);
            m_ship.Set_ChargeData(bull, fuel, null);
            return(true);
        }
Exemplo n.º 3
0
        private HashSet <int> ChargeDataSet_Onslot(Api_req_Hokyu.enumHokyuType type, Mem_ship m_ship)
        {
            enumMaterialCategory enumMaterialCategory = enumMaterialCategory.Bauxite;
            int           value   = Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory).Value;
            HashSet <int> hashSet = new HashSet <int>();
            List <int>    onslot;

            if (value == 0)
            {
                int num = 100;
                int requireUseBauxiteNum = this.GetRequireUseBauxiteNum(m_ship, ref num, out onslot);
                if (requireUseBauxiteNum > 0)
                {
                    hashSet.Add(-2);
                }
                hashSet.Add(-1);
                return(hashSet);
            }
            int requireUseBauxiteNum2 = this.GetRequireUseBauxiteNum(m_ship, ref value, out onslot);

            m_ship.Set_ChargeData(m_ship.Bull, m_ship.Fuel, onslot);
            Comm_UserDatas.Instance.User_material.get_Item(enumMaterialCategory).Sub_Material(requireUseBauxiteNum2);
            List <int> maxeq = Mst_DataManager.Instance.Mst_ship.get_Item(m_ship.Ship_id).Maxeq;

            for (int i = 0; i < m_ship.Slotnum; i++)
            {
                if (maxeq.get_Item(i) > 0)
                {
                    if (maxeq.get_Item(i) != m_ship.Onslot.get_Item(i))
                    {
                        hashSet.Add(-2);
                    }
                }
            }
            return(hashSet);
        }
Exemplo n.º 4
0
        public Api_Result <bool> Charge(List <int> ship_rids, Api_req_Hokyu.enumHokyuType type)
        {
            Api_Result <bool> rslt = new Api_Result <bool>();

            rslt.data = false;
            if (ship_rids == null || ship_rids.get_Count() == 0)
            {
                rslt.state = Api_Result_State.Parameter_Error;
                return(rslt);
            }
            List <Mem_ship> ships = new List <Mem_ship>();

            ship_rids.ForEach(delegate(int x)
            {
                Mem_ship mem_ship = null;
                if (!Comm_UserDatas.Instance.User_ship.TryGetValue(x, ref mem_ship))
                {
                    rslt.state = Api_Result_State.Parameter_Error;
                    return;
                }
                ships.Add(mem_ship);
            });
            if (rslt.state == Api_Result_State.Parameter_Error)
            {
                ships.Clear();
                return(rslt);
            }
            HashSet <int> hashSet = new HashSet <int>();
            int           num     = 0;

            using (List <Mem_ship> .Enumerator enumerator = ships.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Mem_ship current = enumerator.get_Current();
                    if (Mst_DataManager.Instance.Mst_ship.ContainsKey(current.Ship_id))
                    {
                        int fuel = current.Fuel;
                        int bull = current.Bull;
                        if (type == Api_req_Hokyu.enumHokyuType.Fuel || type == Api_req_Hokyu.enumHokyuType.Bull)
                        {
                            bool flag = this.ChargeDataSet(type, current);
                            if (bull < current.Bull || fuel < current.Fuel)
                            {
                                current.SumLovToCharge();
                                num++;
                            }
                            HashSet <int> hashSet2 = this.ChargeDataSet_Onslot(Api_req_Hokyu.enumHokyuType.All, current);
                            using (HashSet <int> .Enumerator enumerator2 = hashSet2.GetEnumerator())
                            {
                                while (enumerator2.MoveNext())
                                {
                                    int current2 = enumerator2.get_Current();
                                    hashSet.Add(current2);
                                }
                            }
                            if (!flag && hashSet2.Contains(-1))
                            {
                                break;
                            }
                        }
                        else if (type == Api_req_Hokyu.enumHokyuType.All)
                        {
                            bool          flag2    = this.ChargeDataSet(Api_req_Hokyu.enumHokyuType.Bull, current);
                            bool          flag3    = this.ChargeDataSet(Api_req_Hokyu.enumHokyuType.Fuel, current);
                            HashSet <int> hashSet3 = this.ChargeDataSet_Onslot(Api_req_Hokyu.enumHokyuType.All, current);
                            if (bull < current.Bull || fuel < current.Fuel)
                            {
                                current.SumLovToCharge();
                                num++;
                            }
                            using (HashSet <int> .Enumerator enumerator3 = hashSet3.GetEnumerator())
                            {
                                while (enumerator3.MoveNext())
                                {
                                    int current3 = enumerator3.get_Current();
                                    hashSet.Add(current3);
                                }
                            }
                            if (!flag2 && !flag3 && hashSet3.Contains(-1))
                            {
                                break;
                            }
                        }
                    }
                }
            }
            if (hashSet.Contains(-2))
            {
                rslt.data = false;
            }
            else
            {
                rslt.data = true;
            }
            QuestSupply questSupply = new QuestSupply(num);

            questSupply.ExecuteCheck();
            return(rslt);
        }