Esempio n. 1
0
 public Projectile.Modifier GetProjectileModifier()
 {
     Projectile.Modifier result = default(Projectile.Modifier);
     result.damageOffset   = ProjectileWeaponMod.Sum(this, (ProjectileWeaponMod x) => x.projectileDamage, (ProjectileWeaponMod.Modifier y) => y.offset, 0f);
     result.damageScale    = ProjectileWeaponMod.Average(this, (ProjectileWeaponMod x) => x.projectileDamage, (ProjectileWeaponMod.Modifier y) => y.scalar, 1f) * GetDamageScale();
     result.distanceOffset = ProjectileWeaponMod.Sum(this, (ProjectileWeaponMod x) => x.projectileDistance, (ProjectileWeaponMod.Modifier y) => y.offset, 0f);
     result.distanceScale  = ProjectileWeaponMod.Average(this, (ProjectileWeaponMod x) => x.projectileDistance, (ProjectileWeaponMod.Modifier y) => y.scalar, 1f) * GetDistanceScale();
     return(result);
 }
Esempio n. 2
0
 public Projectile.Modifier GetProjectileModifier()
 {
     Projectile.Modifier modifier = new Projectile.Modifier()
     {
         damageOffset   = ProjectileWeaponMod.Sum(this, (ProjectileWeaponMod x) => x.projectileDamage, (ProjectileWeaponMod.Modifier y) => y.offset, 0f),
         damageScale    = ProjectileWeaponMod.Average(this, (ProjectileWeaponMod x) => x.projectileDamage, (ProjectileWeaponMod.Modifier y) => y.scalar, 1f) * this.GetDamageScale(false),
         distanceOffset = ProjectileWeaponMod.Sum(this, (ProjectileWeaponMod x) => x.projectileDistance, (ProjectileWeaponMod.Modifier y) => y.offset, 0f),
         distanceScale  = ProjectileWeaponMod.Average(this, (ProjectileWeaponMod x) => x.projectileDistance, (ProjectileWeaponMod.Modifier y) => y.scalar, 1f) * this.GetDistanceScale(false)
     };
     return(modifier);
 }
Esempio n. 3
0
 static Modifier()
 {
     Projectile.Modifier modifier = new Projectile.Modifier()
     {
         damageScale    = 1f,
         damageOffset   = 0f,
         distanceScale  = 1f,
         distanceOffset = 0f
     };
     Projectile.Modifier.Default = modifier;
 }
Esempio n. 4
0
    public void CalculateDamage(HitInfo info, Projectile.Modifier mod, float scale)
    {
        float single  = this.damageMultipliers.Lerp(mod.distanceOffset + mod.distanceScale * this.damageDistances.x, mod.distanceOffset + mod.distanceScale * this.damageDistances.y, info.ProjectileDistance);
        float single1 = scale * (mod.damageOffset + mod.damageScale * single);

        foreach (DamageTypeEntry damageType in this.damageTypes)
        {
            info.damageTypes.Add(damageType.type, damageType.amount * single1);
        }
        if (ConVar.Global.developer > 0)
        {
            Debug.Log(string.Concat(new object[] { " Projectile damage: ", info.damageTypes.Total(), " (scalar=", single1, ")" }));
        }
    }
Esempio n. 5
0
    public void CalculateDamage(HitInfo info, Projectile.Modifier mod, float scale)
    {
        float num1 = this.damageMultipliers.Lerp(mod.distanceOffset + mod.distanceScale * this.damageDistances.x, mod.distanceOffset + mod.distanceScale * this.damageDistances.y, info.ProjectileDistance);
        float num2 = scale * (mod.damageOffset + mod.damageScale * num1);

        foreach (DamageTypeEntry damageType in this.damageTypes)
        {
            info.damageTypes.Add(damageType.type, damageType.amount * num2);
        }
        if (Global.developer <= 0)
        {
            return;
        }
        Debug.Log((object)(" Projectile damage: " + (object)info.damageTypes.Total() + " (scalar=" + (object)num2 + ")"));
    }