public override void Start() { var randomMap = RandomInstance.getInstance(this); var map = World.StorageManager.Spacemaps[randomMap.Next(1, 29)]; map.CreateBinaryBot(Vector.Random(map), true); }
public void RandomiseReward() { var randomInstance = RandomInstance.getInstance(this); var num = randomInstance.NextDouble(); if (num < 0.005) { BoxReward = new Reward(RewardType.ITEM, Item.Find("equipment_weapon_laser_lf-4"), 1); } //else if (num < 0.02) TODO: add design rewards //{ // BoxReward = new Reward(RewardType.DESIGN, Item.Find("ship_goliath_design_solace"), 1); //} //else if (num < 0.03) //{ // BoxReward = new Reward(RewardType.DESIGN, Item.Find("ship_vengeance_design_lightning"), 1); //} else if (num < 0.06) { BoxReward = new Reward(RewardType.ITEM, Item.Find("equipment_weapon_laser_lf-3"), 1); } else if (num < 0.07) { BoxReward = new Reward(RewardType.ITEM, Item.Find("equipment_generator_shield_sg3n-b02"), 1); } else if (num < 0.17) { BoxReward = new Reward(RewardType.ITEM, Item.Find("equipment_generator_speed_g3n-7900"), 1); } else if (num < 0.2) { BoxReward = new Reward(new Dictionary <RewardType, int> { { RewardType.GALAXY_GATES_ENERGY, 16 } }); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_laser_rsb-75")); BoxReward.Rewards.Add(1024); } else if (num < 0.3) { BoxReward = new Reward(RewardType.URIDIUM, 320); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_laser_ucb-100")); BoxReward.Rewards.Add(500); } else { BoxReward = new Reward(RewardType.URIDIUM, 43); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_rocketlauncher_sar-02")); BoxReward.Rewards.Add(150); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_rocketlauncher_hstrm-01")); BoxReward.Rewards.Add(64); } }
public override void Reward() { base.Reward(); AlmostNoNpcsLeft -= LowGate_AlmostNoNpcsLeft; var randomInstance = RandomInstance.getInstance(this); var num = randomInstance.NextDouble(); foreach (var joined in JoinedPlayers.Values) { var currencyReward = new Reward(new Dictionary <RewardType, int> { { RewardType.CREDITS, 1250000 }, { RewardType.URIDIUM, 12500 } }); var ammoReward = new Reward(RewardType.AMMO, Item.Find("ammunition_laser_ucb-100"), 12500); var specialReward = new characters.Reward(RewardType.ITEM, Item.Find("equipment_weapon_laser_lf-4"), 1); if (num < 0.03) { specialReward.ParseRewards(joined); } //TODO MoveOut(joined); ammoReward.ParseRewards(joined); currencyReward.ParseRewards(joined); if (joined.OwnedGates.ContainsKey(Id)) { joined.OwnedGates.TryRemove(Id, out _); } } JoinedPlayers.Clear(); }
public static Vector GetPosOnCircle(Vector circleCenter, int radius) { var randomInstance = RandomInstance.getInstance(circleCenter); var a = randomInstance.Next(0, 360); var calculateX = circleCenter.X + Convert.ToInt32(radius * Math.Cos(a / (180 / Math.PI))); var calculateY = circleCenter.Y + Convert.ToInt32(radius * Math.Sin(a / (180 / Math.PI))); return(new Vector(calculateX, calculateY)); }
internal void Create(Spacemap spacemap, int vwId, Vector vector, int r) { var random = RandomInstance.getInstance(this); foreach (var npc in Npcs) { spacemap.CreateNpc(npc.Ship, AILevels.GALAXY_GATES, false, 0, Vector.GetPosOnCircle(vector, random.Next(0, 360), r), 0, npc.NamePrefix + " " + (Id + 1), npc.Ship.Reward.Multiply(npc.Multiplier)); } }
public void RandomiseReward() { var randomInstance = RandomInstance.getInstance(this); var num = randomInstance.NextDouble(); if (num < 0.005) { BoxReward = new Reward(RewardType.URIDIUM, 32); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_laser_ucb-100")); BoxReward.Rewards.Add(395); } else if (num < 0.02) { BoxReward = new Reward(RewardType.CREDITS, 50000); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_laser_rsb-75")); BoxReward.Rewards.Add(100); } else if (num < 0.1) { BoxReward = new Reward(RewardType.CREDITS, 7500); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_rocketlauncher_sar-02")); BoxReward.Rewards.Add(6); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_rocketlauncher_hstrm-01")); BoxReward.Rewards.Add(4); } else if (num < 0.2) { BoxReward = new Reward(new Dictionary <RewardType, int> { { RewardType.GALAXY_GATES_ENERGY, 1 } }); BoxReward.Rewards.Add((short)0); BoxReward.Rewards.Add(RewardType.AMMO); BoxReward.Rewards.Add(Item.Find("ammunition_laser_mcb-25")); BoxReward.Rewards.Add(580); } else if (num < 0.3) { BoxReward = new Reward(RewardType.AMMO, Item.Find("ammunition_laser_mcb-50"), 150); } else { BoxReward = new Reward(RewardType.AMMO, Item.Find("ammunition_laser_mcb-25"), 250); } }
protected override void Reward(Player player) { try { Reward reward; if (CustomReward != null) { reward = CustomReward; } else { RewardType type; var orderedRewards = REWARDS.OrderBy(x => x.Chance).ToArray(); var random = RandomInstance.getInstance(this); //todo var n = random.NextDouble(); var potentialReward = orderedRewards.FirstOrDefault(x => x.Chance > n) ?? orderedRewards.Last(); if (Enum.TryParse(potentialReward.LootId, true, out type)) { reward = new Reward(type, potentialReward.Amount); } else { type = RewardType.ITEM; if (potentialReward.LootId.StartsWith("ammunition")) { type = RewardType.AMMO; } reward = new Reward(type, Item.Find(potentialReward.LootId), potentialReward.Amount); } } if (player.BoostedBoxRewards == 1) { reward.ParseRewards(player, 2); } else { reward.ParseRewards(player); } } catch (Exception e) { Console.WriteLine(e); Console.WriteLine(e.StackTrace); } }
public static Vector Random(Spacemap map, Vector min = null, Vector max = null) { if (min == null) { min = map.Limits[0]; } if (max == null) { max = map.Limits[1]; } var random = RandomInstance.getInstance(map); var posX = random.Next(min.X, max.X); var posY = random.Next(min.Y, max.Y); return(new Vector(posX, posY)); }
private int RandomizeDamage(int baseDmg, double hitProbability = 0.90) { var random = RandomInstance.getInstance(this); double randNums = random.NextDouble(); if (hitProbability - randNums < 0) { return(0); } var difference = (baseDmg * randNums) * 0.15; if (randNums > 0.5) { return((int)(baseDmg + difference)); } return((int)(baseDmg - difference)); }
private int RandomizeDamage(int damage) { if (damage <= 0) { return(0); } int max = damage + 1000; int min = damage - 1000; if (min < 0) { min = 0; } var random = RandomInstance.getInstance(this); int calculatedDamage = random.Next(max - min) + min; return(calculatedDamage); }
private void RandomiseDamage(PendingDamage pendingDamage) { if (pendingDamage.Attacker == null) { Out.WriteLog("Trying to randomise a damage without attacker", LogKeys.ERROR_LOG); throw new Exception("Trying to randomise a damage where there is no attacker"); } var attacker = pendingDamage.Attacker; var random = RandomInstance.getInstance(attacker).NextDouble(); if (pendingDamage.Damage > 0) { if (random > attacker.HitRate) { pendingDamage.Damage = 0; } else { var randomDamage = Convert.ToInt32(RandomInstance.getInstance(attacker).Next(pendingDamage.Damage - attacker.MaximalDamageReduce, attacker.MaximalDamageIncrease + pendingDamage.Damage)); pendingDamage.Damage = randomDamage; } } if (pendingDamage.AbsorbDamage > 0) { if (random > attacker.HitRate) { pendingDamage.AbsorbDamage = 0; } else { var randomDamage = Convert.ToInt32(RandomInstance.getInstance(attacker).Next(pendingDamage.AbsorbDamage - attacker.MaximalDamageReduce, attacker.MaximalDamageIncrease + pendingDamage.AbsorbDamage)); pendingDamage.AbsorbDamage = randomDamage; } } }
static void InitiateRandomResetTimer() { int randomId = 0; TickManager.Add(RandomInstance.getInstance(new object()), out randomId); }
private int RandomShip() { var random = RandomInstance.getInstance(this); return(POSSIBLE_SHIPS[random.Next(0, POSSIBLE_SHIPS.Length - 1)]); }