private static void CreateHashes(Spacemap map) { var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var stringChars = new char[4]; const int HASHES = 1000; for (int entry = 0; entry < HASHES; entry++) { NEWHASH: for (int i = 0; i < stringChars.Length; i++) { stringChars[i] = chars[Random.Next(chars.Length)]; } var hash = new String(stringChars); if (map.HashedObjects.ContainsKey(hash)) { goto NEWHASH; } map.HashedObjects.TryAdd(hash, null); } map.Objects.TryAdd(0, null); if (Properties.Server.DEBUG) { Console.WriteLine($"Created {HASHES - 1} hashes."); } }
public override void Reward() { AlmostNoNpcsLeft -= LowGate_AlmostNoNpcsLeft; Finished = true; var hit = Random.Next(0, 100); foreach (var joined in JoinedPlayers.Values) { var currencyReward = new Reward(new Dictionary <RewardType, int> { { RewardType.CREDITS, 2500000 }, { RewardType.URIDIUM, 25000 } }); var ammoReward = new Reward(RewardType.AMMO, new Item(-1, "ammunition_laser_ucb-100", 25000), 25000); var specialReward = new characters.Reward(RewardType.ITEM, new Item(-1, "equipment_weapon_laser_lf-4", 1), 1); if (joined?.GetGameSession() == null) { continue; } var joinedSession = joined.GetGameSession(); if (hit == 15) { //Packet.Builder.LegacyModule(joinedSession, "0|A|STD|You've won a LF4!"); specialReward.ParseRewards(joined); } //TODO MoveOut(joined); ammoReward.ParseRewards(joined); currencyReward.ParseRewards(joined); } JoinedPlayers.Clear(); }
private int RandomizeDamage(int baseDmg, double missProbability = 1.00) { var randNums = Random.Next(0, 6); if (missProbability == 0) { randNums = Random.Next(0, 3) | Random.Next(4, 7); } if (missProbability < 1.00 && missProbability != 0) { randNums = Random.Next(0, 7); } if (missProbability > 1.00 && missProbability < 2.00) { randNums = Random.Next(0, 4); } if (missProbability >= 2.00) { randNums = Random.Next(2, 4); } switch (randNums) { case 0: return((int)(baseDmg * 1.10)); case 1: return((int)(baseDmg * 0.98)); case 2: return((int)(baseDmg * 1.02)); case 3: return(0); case 4: return((int)(baseDmg * 0.92)); case 5: return((int)(baseDmg * 0.99)); default: return(baseDmg); } }
private int RandomizeDamage(int damage) { if (damage <= 0) { return(0); } int max = damage + 1000; int min = damage - 1000; if (min < 0) { min = 0; } int calculatedDamage = Random.Next(max - min) + min; return(calculatedDamage); }