public void shootProjectile(IntVec2 this_pos, Projectile.ProjectileType pt, IntVec2 targetTile, float velocity, float range, float accmod, bool allied) { Gun.FiredProjectile fp; fp.accuracy_modifier_degree = 0; fp.is_crit = false; fp.projectile = pt; fp.range = range; fp.speed = velocity; gr.AddBullet(fp, accmod + (Mathf.Rad2Deg * Mathf.Atan2(targetTile.y - this_pos.y, targetTile.x - this_pos.x)), new Vector2(this_pos.x, this_pos.y), allied); }
public GameObject GetPooledProjectile(Projectile.ProjectileType type) { foreach (ProjectilePoolItem pool in ProjectilePools) { if (pool.Type == type) { return(pool.GetPooledObject()); } } return(null); }
public ProjectilePool GetPool(Projectile.ProjectileType projectileType) { ProjectilePool result = null; foreach (var projectilePool in _projectilePools) { if (projectilePool.ProjectileType == projectileType) { result = projectilePool; break; } } return(result); }
// fonction qui permet d'instancier un effet visuel selon le type passé en paramètre public GameObject CreateFX(Projectile.ProjectileType type) { switch (type) { case Projectile.ProjectileType.PROJECTILE_GUN: goFX = Duplicate(originalImpactGun); goFX.transform.position = originalImpactGun.transform.position; print("<factory create fx: gun>"); break; case Projectile.ProjectileType.PROJECTILE_CANNON: goFX = Duplicate(originalImpactCannon); goFX.transform.position = originalImpactCannon.transform.position; print("<factory create fx: cannon>"); break; case Projectile.ProjectileType.PROJECTILE_LASER: goFX = Duplicate(originalImpactLaser); goFX.transform.position = originalImpactLaser.transform.position; print("<factory create fx: laser>"); break; case Projectile.ProjectileType.PROJECTILE_FLAME: goFX = Duplicate(originalImpactFlame); goFX.transform.position = originalImpactFlame.transform.position; print("<factory create fx: flame>"); break; } return(goFX); }
// fonction qui permet d'instancier un projectile selon le type passé en paramètre public GameObject CreateProjectile(Projectile.ProjectileType type) { switch (type) { case Projectile.ProjectileType.PROJECTILE_GUN: goProjectile = Duplicate(originalProjectileGun); goProjectile.transform.position = originalProjectileGun.transform.position; print("<factory create projectile: gun>"); break; case Projectile.ProjectileType.PROJECTILE_CANNON: goProjectile = Duplicate(originalProjectileCannon); goProjectile.transform.position = originalProjectileCannon.transform.position; print("<factory create projectile: cannon>"); break; case Projectile.ProjectileType.PROJECTILE_LASER: goProjectile = Duplicate(originalProjectileLaser); goProjectile.transform.position = originalProjectileLaser.transform.position; print("<factory create projectile: laser>"); break; case Projectile.ProjectileType.PROJECTILE_FLAME: goProjectile = Duplicate(originalProjectileFlame); goProjectile.transform.position = originalProjectileFlame.transform.position; print("<factory create projectile: flame>"); break; } return(goProjectile); }
// Fires a projectile toward the cursor position public void Attack(PhysicsManager physManager, Vector2 cursorPos, Projectile.ProjectileType projectileType) { Vector2 directionToFire = new Vector2(cursorPos.X - RigidBody.Position.X, cursorPos.Y - RigidBody.Position.Y); directionToFire = Vector2.Normalize(directionToFire); if (projectileType == Projectile.ProjectileType.Bullet) { Projectile projectile = new Projectile(RigidBody.Position, directionToFire, 1, projectileType); physManager.DynamicObjects.Add(projectile); physManager.AllPhysObjects.Add(projectile); } if (projectileType == Projectile.ProjectileType.Ball && BallAmmo > 0) { Projectile projectile = new Projectile(RigidBody.Position, directionToFire, 1, projectileType); physManager.DynamicObjects.Add(projectile); physManager.AllPhysObjects.Add(projectile); BallAmmo--; } }
public void setExplosionType(Projectile.ProjectileType newProjectileType) { projectileType = newProjectileType; }