public override ProjectileInfo Clone() { GrenadeBulletInfo info = base.Clone() as GrenadeBulletInfo; info.OnHitVeclocityMultiplier = OnHitVeclocityMultiplier; info.HopUpFactor = HopUpFactor; info.ExplosionInfo = ExplosionInfo; return(info); }
void ReinitProjectileStatistics() { _projectileStatistics = new Dictionary <ProjectileType, ProjectileInfo>(); #region pistol { PistolBulletInfoBilder pistolBuilder = new PistolBulletInfoBilder(); PistolBulletInfo pistolInfo = pistolBuilder .MakeNew() .SetType(ProjectileType.PistolBullet) .SetInitialSpeed(_avatarCardStatistics[CardStatistics.ProjectileSpeed]) .SetCollisionLayer("Friendly Projectile") .SetDamage(_avatarCardStatistics[CardStatistics.Damage]) .Create(); SetProjectileInfo(ProjectileType.PistolBullet, pistolInfo); } #endregion #region grenade { GrenadeBulletInfoBuilder grenadeBuilder = new GrenadeBulletInfoBuilder(); GrenadeBulletInfo grenadeInfo = grenadeBuilder .MakeNew() .SetType(ProjectileType.Grenade) .SetInitialSpeed((float)_avatarCardStatistics[CardStatistics.BallisticProjectileSpeed] * 1.2f) .SetCollisionLayer("Friendly Projectile") .SetOnHitVeclocityMultiplier(new Vector2(0.6f, 1.0f)) .SetHopUpFactor(0.12f) //.SetDamage(10) Tego nie uzywamy, to zalatwia ExplosionInfo .SetExplosionInfo(new ExplosionInfo( (float)_avatarCardStatistics[CardStatistics.ExplosionRange] * 1.0f, ExplosionPropagationMethod.Square, //ExplosionPropagationMethod.Constant, (float)_avatarCardStatistics[CardStatistics.ExplosionForce] * 1.0f, (float)_avatarCardStatistics[CardStatistics.Damage] * 1.5f, InGameTag.FriendlyExplosion )) .Create(); SetProjectileInfo(ProjectileType.Grenade, grenadeInfo); } #endregion #region shotgun { ShotgunBulletInfoBilder shotgunBuilder = new ShotgunBulletInfoBilder(); ShotgunBulletInfo shotgunInfo = shotgunBuilder .MakeNew() .SetType(ProjectileType.ShotgunPellet) .SetInitialSpeed((float)_avatarCardStatistics[CardStatistics.ProjectileSpeed] * 1.4f) .SetCollisionLayer("Friendly Projectile") .SetDamage(Mathf.FloorToInt((float)_avatarCardStatistics[CardStatistics.Damage] / 4.0f)) .Create(); SetProjectileInfo(ProjectileType.ShotgunPellet, shotgunInfo); } #endregion }