public override WeaponInfo ToInfo( WeaponModifier.ModifierNames mod )
    {
        if (weaponType == WeaponType.MISSILE_LAUNCHER)
        {
            SetCost(100);
        }
        float moddedDamage = damage * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.DAMAGE );
        float moddedFireRate = fireTime / WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.FIRE_RATE );
        float moddedAccuracy = maxSpreadAngle / WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.ACCURACY );
        float moddedCost = cost * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.COST_MOD);
        SetCost((int)moddedCost);

        WeaponInfo info = new WeaponInfo( weaponType, mod );

        if( weaponType != WeaponType.SCATTER_SHOT )
        {
            info.AddAttribute( "Damage", RoundStatToDecimalPlaces( moddedDamage, 1 ).ToString() );
        }

        else
        {
            float bonusProjectiles = WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.BONUS_PROJECTILES );
            int count = Mathf.CeilToInt( projectilesPerShot * bonusProjectiles );
            info.AddAttribute( "Damage", RoundStatToDecimalPlaces( damage, 1 ) + " (x" + count + ")" );
        }

        info.AddAttribute( "Fire Rate", RoundStatToDecimalPlaces( 1 / moddedFireRate, 1 ) + "/s" );
        info.AddAttribute( "Projectile Speed", RoundStatToDecimalPlaces( projectileSpeed, 1 ).ToString() );
        info.AddAttribute( "Accuracy", RoundStatToDecimalPlaces( ( 1 - ( moddedAccuracy * 2 / 180 ) ) * 100, 1 ) + "%" );
        info.AddAttribute("Cost", RoundStatToDecimalPlaces(moddedCost, 1).ToString());

        return info;
    }
Exemple #2
0
    public override WeaponInfo ToInfo(WeaponModifier.ModifierNames mod)
    {
        float moddedDamage   = damage * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.DAMAGE);
        float moddedFireRate = fireTime / WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.FIRE_RATE);
        float moddedAccuracy = maxSpreadAngle / WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.ACCURACY);

        WeaponInfo info = new WeaponInfo(weaponType, mod);

        if (weaponType != WeaponType.SCATTER_SHOT)
        {
            info.AddAttribute("Damage", RoundStatToDecimalPlaces(moddedDamage, 1).ToString());
        }
        else
        {
            int bonusProjectiles = (int)WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.BONUS_PROJECTILES);
            int count            = projectilesPerShot + bonusProjectiles;
            info.AddAttribute("Damage", RoundStatToDecimalPlaces(damage, 1) + " (x" + count + ")");
        }

        info.AddAttribute("Fire Rate", RoundStatToDecimalPlaces(1 / moddedFireRate, 1) + "/s");
        info.AddAttribute("Projectile Speed", RoundStatToDecimalPlaces(projectileSpeed, 1).ToString());
        info.AddAttribute("Accuracy", RoundStatToDecimalPlaces((1 - (moddedAccuracy * 2 / 180)) * 100, 1) + "%");

        return(info);
    }
    public override WeaponInfo ToInfo( WeaponModifier.ModifierNames mod )
    {
        float moddedDamage = damage * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.DAMAGE );
        float moddedFireRate = fireTime / WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.FIRE_RATE );
        float moddedAccuracy = maxSpreadAngle / WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.ACCURACY );

        WeaponInfo info = new WeaponInfo( weaponType, mod );

        if( weaponType != WeaponType.SCATTER_SHOT )
        {
            info.AddAttribute( "Damage", RoundStatToDecimalPlaces( moddedDamage, 1 ).ToString() );
        }
        else
        {
            int bonusProjectiles = (int)WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.BONUS_PROJECTILES );
            int count = projectilesPerShot + bonusProjectiles;
            info.AddAttribute( "Damage", RoundStatToDecimalPlaces( damage, 1 ) + " (x" + count + ")" );
        }

        info.AddAttribute( "Fire Rate", RoundStatToDecimalPlaces( 1 / moddedFireRate, 1 ) + "/s" );
        info.AddAttribute( "Projectile Speed", RoundStatToDecimalPlaces( projectileSpeed, 1 ).ToString() );
        info.AddAttribute( "Accuracy", RoundStatToDecimalPlaces( ( 1 - ( moddedAccuracy * 2 / 180 ) ) * 100, 1 ) + "%" );

        return info;
    }
 public override WeaponInfo ToInfo( WeaponModifier.ModifierNames mod )
 {
     float moddedDamage = damage * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.DAMAGE );
     float moddedRange = beamRange * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.BEAM_RANGE );
     WeaponInfo info = new WeaponInfo( weaponType, mod );
     info.AddAttribute( "Damage", RoundStatToDecimalPlaces( moddedDamage, 1 ) + "/s" );
     info.AddAttribute( "Range", RoundStatToDecimalPlaces( moddedRange, 1 ).ToString() );
     return info;
 }
Exemple #5
0
    public WeaponInfo(WeaponScript.WeaponType weaponType, WeaponModifier.ModifierNames p_Modifier)
    {
        GameObject prefab = GameMaster.WeaponMngr.GetWeaponPrefab( weaponType );
        weaponPrefab = prefab;
        WeaponModifier.GetModifiedName( p_Modifier, prefab.name, out name );
        modifier = p_Modifier;

        attributes = new Dictionary<string, string>();
    }
Exemple #6
0
    public override WeaponInfo ToInfo(WeaponModifier.ModifierNames mod)
    {
        float      moddedDamage = damage * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.DAMAGE);
        float      moddedRange  = beamRange * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.BEAM_RANGE);
        WeaponInfo info         = new WeaponInfo(weaponType, mod);

        info.AddAttribute("Damage", RoundStatToDecimalPlaces(moddedDamage, 1) + "/s");
        info.AddAttribute("Range", RoundStatToDecimalPlaces(moddedRange, 1).ToString());
        return(info);
    }
Exemple #7
0
    public WeaponInfo(WeaponScript.WeaponType weaponType, WeaponModifier.ModifierNames p_Modifier)
    {
        GameObject prefab = GameMaster.WeaponMngr.GetWeaponPrefab(weaponType);

        weaponPrefab = prefab;
        WeaponModifier.GetModifiedName(p_Modifier, prefab.name, out name);
        modifier = p_Modifier;

        attributes = new Dictionary <string, string>();
    }
Exemple #8
0
    protected override void ApplyModifier()
    {
        if (modifier == WeaponModifier.ModifierNames.DEFAULT)
        {
            // Early return
            return;
        }

        damage    *= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.DAMAGE);
        beamRange *= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.BEAM_RANGE);
    }
Exemple #9
0
        public static Weapon Generate(int input)
        {
            Random         r              = new Random(input);
            double         elementSelect  = r.NextDouble() * TotalWeightingElements;
            double         typeSelect     = r.NextDouble() * TotalWeightingTypes;
            double         modifierSelect = r.NextDouble() * TotalWeightingModifiers;
            Element        element        = Locate <Element>(Elements, elementSelect);
            WeaponType     type           = Locate <WeaponType>(Types, typeSelect);
            WeaponModifier modifier       = Locate <WeaponModifier>(Modifiers, modifierSelect);

            return(new Weapon(element, type, modifier));
        }
    public override WeaponInfo ToInfo( WeaponModifier.ModifierNames mod )
    {
        float moddedDamage = damage * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.DAMAGE );
        float moddedSpeed = projectileSpeed * WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.MINE_SPEED );
        float moddedFireRate = fireTime / WeaponModifier.GetModifierValue( mod, WeaponModifier.Stats.FIRE_RATE );

        WeaponInfo info = new WeaponInfo( weaponType, mod );
        info.AddAttribute( "Damage", RoundStatToDecimalPlaces( moddedDamage, 1 ).ToString() );
        info.AddAttribute( "Fire Rate", RoundStatToDecimalPlaces(  1 / moddedFireRate, 1 ) + "/s" );
        info.AddAttribute( "Projectile Speed", RoundStatToDecimalPlaces( moddedSpeed, 1 ).ToString() );
        return info;
    }
Exemple #11
0
    protected override void ApplyModifier()
    {
        if (modifier == WeaponModifier.ModifierNames.DEFAULT)
        {
            // Early return
            return;
        }

        damage          *= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.DAMAGE);
        projectileSpeed *= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.MINE_SPEED);
        fireTime        /= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.FIRE_RATE);
    }
Exemple #12
0
    public override WeaponInfo ToInfo(WeaponModifier.ModifierNames mod)
    {
        float moddedDamage   = damage * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.DAMAGE);
        float moddedSpeed    = projectileSpeed * WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.MINE_SPEED);
        float moddedFireRate = fireTime / WeaponModifier.GetModifierValue(mod, WeaponModifier.Stats.FIRE_RATE);

        WeaponInfo info = new WeaponInfo(weaponType, mod);

        info.AddAttribute("Damage", RoundStatToDecimalPlaces(moddedDamage, 1).ToString());
        info.AddAttribute("Fire Rate", RoundStatToDecimalPlaces(1 / moddedFireRate, 1) + "/s");
        info.AddAttribute("Projectile Speed", RoundStatToDecimalPlaces(moddedSpeed, 1).ToString());
        return(info);
    }
Exemple #13
0
    protected override void ApplyModifier()
    {
        if (modifier == WeaponModifier.ModifierNames.DEFAULT)
        {
            // Early return
            return;
        }

        if (weaponType == WeaponType.SCATTER_SHOT)
        {
            int bonusProjectiles = (int)WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.BONUS_PROJECTILES);
            projectilesPerShot += bonusProjectiles;
        }
        else
        {
            damage *= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.DAMAGE);
        }

        maxSpreadAngle /= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.ACCURACY);
        fireTime       /= WeaponModifier.GetModifierValue(modifier, WeaponModifier.Stats.FIRE_RATE);
    }
Exemple #14
0
 public abstract WeaponInfo ToInfo( WeaponModifier.ModifierNames mod );
Exemple #15
0
 public void SetModifier( WeaponModifier.ModifierNames mod )
 {
     modifier = mod;
     //ApplyModifier();
 }
Exemple #16
0
 internal Weapon(Element element, WeaponType type, WeaponModifier modifier)
 {
     this.Element  = element;
     this.Type     = type;
     this.Modifier = modifier;
 }