private int TryGetExtraGoldForStopKill(int inContinuousKillVal, BattleConfigData inBattleConfigDataInst) { if (inBattleConfigDataInst != null && inContinuousKillVal >= 3) { return((int)inBattleConfigDataInst.GetRateByType(BattleConfigData.Rate_Type.Rate_Bonus, 3)); } return(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)); } }
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); }
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)); }
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; }
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); } } }