void RefreshActivityThread() { DateTime toEnd = activity.start.AddDays(7); long time = NumbersM.NParse <long>((toEnd - DateTime.UtcNow).TotalMilliseconds); ActivityThread((int)time, (int)(time - int.MaxValue)); }
internal long PercentHealing(double percent, bool canOverheal = false) { if (percent > 0) { return(Healing(NumbersM.NParse <long>(Health() * percent), canOverheal)); } return(0); }
internal long PercentHealing(int percent, bool canOverheal = false) { if (percent > 0) { return(Healing(NumbersM.NParse <long>(Health() * (percent / 100.00)), canOverheal)); } return(0); }
internal int GetAreaFloorLevel(Random rng, int floor = -1) { double range = 0.20; int fl = NumbersM.NParse <int>(level * (1 + (floor / (5.00 * level)))); int min = NumbersM.NParse <int>(fl * (1 - range)); int max = NumbersM.NParse <int>(fl * (1 + range)); return(rng.Next(min, max + 1)); }
public static string DefeatCost(Player player, NPC mob, double intensity = 1) { long xpDropped = NumbersM.NParse <long>(player.XPDrop(mob.level) * intensity); player.experience -= xpDropped; long coinsLost = Verify.Max(NumbersM.NParse <long>(((mob.Rank() + mob.level) * 2) * intensity), player.KCoins); player.KCoins -= coinsLost; //Log.CombatData(mob, player, xpDropped); mob.XpGain(xpDropped); return($"{player.name} lost {xpDropped} XP And {coinsLost} Kuts"); }
public object[] SpikedArmor(CombatResult owner, CombatResult enemy) { if (enemy.abilityUsed != null && enemy.SentHit && enemy.abilityUsed.type == Ability.AType.Martial) { long reflectedDamage = NumbersM.NParse <long>(enemy.baseDamage[0] * Verify.Max(owner.character.stats.GetEND() * 0.01, 0.25)); if (reflectedDamage > 0) { enemy.selfDamageTaken[0] += reflectedDamage; owner.perkProcs.Add($"{owner.Name} returned {reflectedDamage} to {enemy.Name}"); } } return(new object[] { owner, enemy }); }
void FollowerCheck(NPC n, Party party, bool allPlayersDead) { int s = n.HealthStatus(out string status); /// >= 0 Is alive /// -1 is Down, -2 Fainted, -3 Unconscious, -4 Dead, -5 Vaporized if (s < -1 || allPlayersDead) { if (n.IsPet()) { if (party != null && s <= -4) { party.Remove(party.NPCMembers.FindIndex (x => x.origin == n.origin), null); } else { n.health = n.Health(); n.stamina = n.Stamina(); } } else { if (party != null) { party.NPCMembers.RemoveAt(party.NPCMembers.FindIndex (x => x.displayName == n.displayName)); } if (s > -4) { n.Respawn(); } } } else if (s >= -1) { long fullHealthCost = Verify.Max( NumbersM.NParse <long>(100 - (((n.health + 0.00) / n.Health()) * 100)) , n.KCoins); if (fullHealthCost > 0) { n.KCoins -= fullHealthCost; n.health += NumbersM.CeilParse <long>(n.Health() * (fullHealthCost / 100.00)); } n.stamina = n.Stamina(); n.SelfGear(); } }
internal int StaminaE(double percentage) { if (percentage != 0) { int maxSP = Stamina(); if (percentage > 0 && stamina >= maxSP) { return(0); } else if (percentage < 0 && stamina <= 0) { return(0); } return(StaminaE(Math.Max(1, NumbersM.NParse <int>(maxSP * percentage)))); } return(0); }
public object[] ToxinFilter(CombatResult owner, CombatResult enemy) { long toxicdmg = 0; if (enemy.SentHit && (toxicdmg = enemy.GetTotalDamage(3)) > 0) { if (RNG(101) <= 10 + (5 * rank)) { owner.perkProcs.Add($"Gained " + owner.character.StaminaE( NumbersM.NParse <int>(toxicdmg * (0.25 + (0.5 * rank)))) + $" Stamina from Toxin Filter"); rank = 0; } else if (rank < maxRank) { rank++; } } return(new object[] { owner, enemy }); }
public static void Heal(CombatResult caster, CombatResult target) { if (caster.SentHit) { Ability heal = caster.abilityUsed; long mhp = target.character.Health(); if (target.character.HealthStatus(out string status) <= -4) { caster.perkProcs.Add($"{heal.name} is not powerful enough to have an effect on {status} targets"); } else if (target.character.health >= mhp) { caster.perkProcs.Add($"Healed {target.Name} for 0HP"); } else { double percHealing = ((heal.level + 10 + caster.character.stats.GetINT()) / 100.00); long maxOutput = NumbersM.NParse <long>(mhp * percHealing); long healing = target.character.Healing(maxOutput, true); caster.perkProcs.Add($"Healed {target.Name} for {healing}HP"); } }
public long PowerLevel() { long power = Health() + Stamina() + Agility() + NumbersM.NParse <long>(CritChance() + CritMult()); for (int i = 0; i < ReferenceData.DmgType.Length; i++) { power += Damage(i) + Resistance(i); } if (stats.intelligence / 2 > 1) { power *= stats.intelligence / 2; } power += perks.Count * 20; for (int i = 0; i < 9; i++) { var g = equipment.GetGear(i); if (g != null && g.perk != null) { power += 20; } } return(power); }
public long XpGain(double xpgain) { long xp = NumbersM.NParse <long>(xpgain); return(XpGain(xp)); }
internal static int RandomInterval(int i, double m) => rng.Next(NumbersM.NParse <int>(i * (1 - m)), NumbersM.NParse <int>(i * (1 + m)));