public static ShipComponentRarity GetLootRarity(ShipComponentRarity rarity, float roll) { ShipComponentRarity prospect = ShipComponentRarity.Common; if (roll <= .01f) { prospect = ShipComponentRarity.Forerunner; } else if (roll <= .1f) { prospect = ShipComponentRarity.Artifact; } else if (roll <= .33f) { prospect = ShipComponentRarity.Rare; } else { prospect = ShipComponentRarity.Common; } if (prospect > rarity) { return(rarity); } return(prospect); }
public void Initialize(ShipComponentRarity topRarity, int minItemCount, int maxItemCount) { _topRarity = topRarity; _minItemCount = minItemCount; _maxItemCount = maxItemCount; Generate(); }
public ShipComponent(ShipComponentData scd, ShipComponentRarity rarity) { _name = scd.name; _description = scd.description; _cooldown = scd.cooldown; _modifiers = scd.modifiers; _rarity = rarity; _minimumSize = scd.minimumSize; _icon = scd.icon; _autoActivate = scd.autoActivateEnabledByDefault; }
public virtual ShipComponent Instantiate(ShipComponentRarity rarity) { return(new ShipComponent(this, rarity)); }
public static ShipComponent GetRandom(ShipComponentRarity topRarity) { return(_items[_random.Next(0, (int)topRarity)] .RandomItem() .Instantiate((ShipComponentRarity)_random.Next(0, Enum.GetNames(typeof(ShipComponentRarity)).Length))); }