Exemple #1
0
 private int TryGetExtraGoldForStopKill(int inContinuousKillVal, BattleConfigData inBattleConfigDataInst)
 {
     if (inBattleConfigDataInst != null && inContinuousKillVal >= 3)
     {
         return((int)inBattleConfigDataInst.GetRateByType(BattleConfigData.Rate_Type.Rate_Bonus, 3));
     }
     return(0);
 }
Exemple #2
0
 public override void Update()
 {
     if (Time.time - this._lastUpdateTime > this._interval)
     {
         this._lastUpdateTime = Time.time;
         BattleConfigData battleConfigData = UtilManager.Instance.GetUtilDataMgr().GetUtilDataByType(UtilDataType.Battle_config, SceneInfo.Current.BattleAttrIndex) as BattleConfigData;
         this.ChangeGold((int)battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Salary, 0));
     }
 }
Exemple #3
0
 private int TryGetExtraGoldForFirstBlood(int inAttackerId, BattleConfigData inBattleConfigDataInst)
 {
     if (StatisticsManager.IsCanGetFirstBloodGold(inAttackerId) && inBattleConfigDataInst != null)
     {
         StatisticsManager.OperationAfterGotFirstBloodGold();
         return((int)inBattleConfigDataInst.GetRateByType(BattleConfigData.Rate_Type.Rate_Bonus, 2));
     }
     return(0);
 }
    public override void InitCounter()
    {
        List <Units> mapUnits = MapManager.Instance.GetMapUnits(TargetTag.Hero);

        if (mapUnits != null)
        {
            BattleConfigData battleConfigData = UtilManager.Instance.GetUtilDataMgr().GetUtilDataByType(UtilDataType.Battle_config, SceneInfo.Current.BattleAttrIndex) as BattleConfigData;
            foreach (Units current in mapUnits)
            {
                this.AddValue(current.unique_id, new GoldValue(current.unique_id, (int)battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Init, 0)));
            }
        }
        this.IfInit = true;
    }
Exemple #5
0
    private float GetSharedExpByUnitId(float inDeadExp, int inSharedNum)
    {
        if (this._dataMgr == null)
        {
            return(0f);
        }
        BattleConfigData battleConfigData = this._dataMgr.GetUtilDataByType(UtilDataType.Battle_config, SceneInfo.Current.BattleAttrIndex) as BattleConfigData;

        if (battleConfigData == null)
        {
            return(0f);
        }
        return(inDeadExp * battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_4_Exp, inSharedNum));
    }
Exemple #6
0
    private UtilData CreateData(UtilDataType type, int id)
    {
        UtilData result = null;

        switch (type)
        {
        case UtilDataType.Battle_attr_reward:
            result = new UtilMonsterData(id.ToString());
            break;

        case UtilDataType.Battle_config:
            result = new BattleConfigData(id.ToString());
            break;

        case UtilDataType.Battle_exp:
            result = new UtilExpData(id.ToString());
            break;

        case UtilDataType.Battle_skill_ai_config:
            result = new SkillAiConfigData(id.ToString());
            break;
        }
        return(result);
    }
Exemple #7
0
    public void AddDeathGold(Units attacker, Units dead)
    {
        if (attacker == null)
        {
            return;
        }
        if (dead == null)
        {
            return;
        }
        if (LevelManager.IsTestingLevel || Singleton <PvpManager> .Instance.IsInPvp)
        {
            return;
        }
        if (!attacker.isHero)
        {
            return;
        }
        HeroKillData heroKillDataByUnitId = this.GetHeroKillDataByUnitId(dead.unique_id);
        int          num  = 0;
        float        num2 = 0f;
        int          num3 = (dead.level <= 1) ? 0 : (dead.level - 1);

        if (dead.isHero)
        {
            BattleConfigData battleConfigData = this._dataMgr.GetUtilDataByType(UtilDataType.Battle_config, SceneInfo.Current.BattleAttrIndex) as BattleConfigData;
            if (battleConfigData == null)
            {
                return;
            }
            int num4 = (heroKillDataByUnitId == null) ? 0 : heroKillDataByUnitId.ContinusKillCount;
            num += this.TryGetExtraGoldForFirstBlood(attacker.unique_id, battleConfigData);
            num += this.TryGetExtraGoldForStopKill(num4, battleConfigData);
            float num5;
            if (num4 > 0)
            {
                num5 = battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Normal, 0) + battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Enemy_Lv_Based, 0) * (float)num3 + battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Enemy_Kill_Based, 0) * (float)(num4 - 1);
            }
            else
            {
                num5 = battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Normal, 0) + battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_Enemy_Lv_Based, 0) * (float)num3;
                float num6 = battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_DeathRatio, 0) * (float)((heroKillDataByUnitId == null) ? 0 : heroKillDataByUnitId.DeathCount);
                num5 = ((num5 <= num6) ? 0f : (num5 - num6));
            }
            List <Units> list = ListPool.get <Units>();
            dead.GetHeroKillHelper(attacker, list);
            if (list != null && list.Count > 0)
            {
                num2 = num5 * battleConfigData.GetRateByType(BattleConfigData.Rate_Type.Rate_4_Gold, list.Count);
                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i] != null)
                    {
                        this.AddGoldByUnitId(list[i].unique_id, (int)num2);
                    }
                }
            }
            ListPool.release <Units>(list);
            num = num + (int)num5 + (int)num2;
            this.AddGoldByUnitId(attacker.unique_id, num);
            if (dead.isVisible)
            {
                dead.JumpGoldFont(num, attacker);
            }
        }
        else if (dead.isMonster || dead.isBuilding)
        {
            UtilMonsterData.UnitReward monsterReward = this.GetMonsterReward(dead.npc_id);
            if (monsterReward == null)
            {
                return;
            }
            this.AddGoldByUnitId(attacker.unique_id, monsterReward.Gold_kill);
            if (monsterReward.Gold_extra > 0)
            {
                IList <Units> mapUnits = MapManager.Instance.GetMapUnits((TeamType)attacker.teamType, global::TargetTag.Hero);
                if (mapUnits != null && mapUnits.Count > 0)
                {
                    for (int j = 0; j < mapUnits.Count; j++)
                    {
                        if (mapUnits[j] != null)
                        {
                            this.AddGoldByUnitId(mapUnits[j].unique_id, monsterReward.Gold_extra);
                        }
                    }
                }
            }
            if (dead.isVisible)
            {
                dead.JumpGoldFont(monsterReward.Gold_kill, attacker);
                this.TryPlayGoldEff(attacker, dead, AddMoneyType.Kill);
            }
        }
    }