Exemple #1
0
    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);
    }
Exemple #2
0
    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));
 }
Exemple #5
0
 public static ShipComponent GetRandom(ShipComponentRarity topRarity)
 {
     return(_items[_random.Next(0, (int)topRarity)]
            .RandomItem()
            .Instantiate((ShipComponentRarity)_random.Next(0, Enum.GetNames(typeof(ShipComponentRarity)).Length)));
 }