示例#1
0
    public override void read(ErlKVMessage message)
    {
        ErlType data = message.getValue("msg") as ErlType;

        if (data != null && data is ErlArray)
        {
            ErlArray arr = data as ErlArray;
            MiningManagement.Instance.SearchTimes = StringKit.toInt(arr.Value[0].getValueString());
            ErlArray arr_mineral = arr.Value[1] as ErlArray;
            for (int i = 0; i < arr_mineral.Value.Length; i++)
            {
                ErlArray    mineral = arr_mineral.Value[i] as ErlArray;
                MineralInfo info    = new MineralInfo();
                info.localId      = StringKit.toInt(mineral.Value [0].getValueString());
                info.sid          = StringKit.toInt(mineral.Value [1].getValueString());
                info.armyId       = StringKit.toInt(mineral.Value [2].getValueString());
                info.startTime    = StringKit.toLong(mineral.Value [3].getValueString());
                info.balanceTime  = StringKit.toLong(mineral.Value [4].getValueString());
                info.balanceCount = StringKit.toInt(mineral.Value [5].getValueString());
                MiningManagement.Instance.minerals[info.localId] = null;
                MiningManagement.Instance.AddMineral(info);
            }
            if (this.callback != null)
            {
                callback();
            }
        }
    }
示例#2
0
    public float GetSpeed(int localId)
    {
        MineralInfo mineralInfo = minerals[localId];

        if (GetMiningSample(localId).type == (int)MiningTypePage.MiningGold)
        {
            float temp   = GetMiningSampleBySid(mineralInfo.sid).outputRate + ArmyManager.Instance.getArmy(mineralInfo.armyId).getAllCombat() / 300000f;
            float maxNum = (float)CommandConfigManager.Instance.getMoneySpeedOfArean();
            return(temp > maxNum ? maxNum : temp);
            //return GetMiningSampleBySid(mineralInfo.sid).outputRate + ArmyManager.Instance.getArmy(mineralInfo.armyId).getAllCombat() / 300000f;
        }
        return(GetMiningSampleBySid(mineralInfo.sid).outputRate);
    }
示例#3
0
    public override void read(ErlKVMessage message)
    {
        ErlType data = message.getValue("msg") as ErlType;

        if (data != null)
        {
            if (!(data is ErlArray))
            {
                string str = (data as ErlAtom).Value;
                if (str == "limit")
                {
                    MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("mining_limit"));
                }
                else if (str == "sid_error")
                {
                    MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("mining_sid_error"));
                }
                else if (str == "no_array")
                {
                    MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("mining_no_array"));
                }
                else if (str == "array_busy")
                {
                    MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("mining_array_busy"));
                }
                else if (str == "local_exist")
                {
                    MessageWindow.ShowAlert(LanguageConfigManager.Instance.getLanguage("mining_local_exist"));
                }
            }
            else
            {
                ErlArray    arr  = data as ErlArray;
                MineralInfo info = new MineralInfo();
                info.localId      = StringKit.toInt(arr.Value [0].getValueString());
                info.sid          = StringKit.toInt(arr.Value [1].getValueString());
                info.armyId       = StringKit.toInt(arr.Value [2].getValueString());
                info.startTime    = StringKit.toLong(arr.Value [3].getValueString());
                info.balanceTime  = StringKit.toLong(arr.Value [4].getValueString());
                info.balanceCount = StringKit.toInt(arr.Value [5].getValueString());
                MiningManagement.Instance.AddMineral(info);
                if (this.callback != null)
                {
                    callback();
                }
            }
        }
    }
示例#4
0
    public int GetBalance(int localId)
    {
        MineralInfo mineralInfo = minerals[localId];
        float       balance     = mineralInfo.balanceCount;

        if (GetMiningSample(localId).type == (int)MiningTypePage.MiningGold)
        {
            if (GetRemainTime(localId) > 0)
            {
                float time = ServerTimeKit.getSecondTime() - mineralInfo.startTime;
                balance += (float)(time < 0?0:time * GetSpeed(localId));
            }
            else
            {
                balance += (float)((mineralInfo.balanceTime - mineralInfo.startTime) * GetSpeed(localId));
            }
        }
        else
        {
            if (GetRemainTime(localId) > 0)
            {
                float time = ServerTimeKit.getSecondTime() - mineralInfo.startTime;
                balance += (float)(time < 0 ? 0 : time * (GetSpeed(localId)));
            }
            else
            {
                balance += (float)((mineralInfo.balanceTime - mineralInfo.startTime) * (GetSpeed(localId)));
            }
        }

        if (balance < 0)
        {
            Debug.Log(12312);
        }
        return((int)balance);
    }
示例#5
0
 public void AddMineral(MineralInfo info)
 {
     minerals[info.localId] = info;
 }
示例#6
0
    public string GetMineralBackground(int localId)
    {
        MineralInfo mineralInfo = minerals[localId];

        return(GetMiningSampleBySid(mineralInfo.sid).background);
    }