public void Collision(ComponentPosition positionComponent, ComponentCollision collisionComponent, ComponentVelocity velocityComponent, ComponentPosition fpositionComponent, ComponentCollision fcollisionComponent, ComponentVelocity fvelocityComponent) { var still = Vector3.Zero; if (positionComponent.Position.X > fpositionComponent.Position.X - 1 && positionComponent.Position.X < fpositionComponent.Position.X + 1 && positionComponent.Position.Y > fpositionComponent.Position.Y - 1 && positionComponent.Position.Y < fpositionComponent.Position.Y + 1) { if (velocityComponent.Velocity == up) { positionComponent.Position += downfix; velocityComponent.Velocity = still; } else if (velocityComponent.Velocity == down) { positionComponent.Position += upfix; velocityComponent.Velocity = still; } else if (velocityComponent.Velocity == right) { positionComponent.Position += leftfix; velocityComponent.Velocity = still; } else if (velocityComponent.Velocity == left) { positionComponent.Position += rightfix; velocityComponent.Velocity = still; } } }
public void ItemCollision(ComponentPosition positionComponent, ComponentCollision collisionComponent, ComponentVelocity velocityComponent, ComponentPosition fpositionComponent, ComponentCollision fcollisionComponent, ComponentVelocity fvelocityComponent, Entity item, ComponentAudio faudioComponent, ComponentTexture ftextureComponent) { if (positionComponent.Position.X > fpositionComponent.Position.X - 1 && positionComponent.Position.X < fpositionComponent.Position.X + 1 && positionComponent.Position.Y > fpositionComponent.Position.Y - 1 && positionComponent.Position.Y < fpositionComponent.Position.Y + 1 && ftextureComponent.Texture != 0) { faudioComponent.Start(); ftextureComponent.remove(); fpositionComponent.Position = offscreen; } }
public void Hit(ComponentCollision comp) { // TO DO : maybe change this foreach (LinkPos pos in comp.LinkPosList) { Vector3 worldPos = comp.Owner.transform.TransformPoint(pos.Center.ToVec3()); if (Vector3.Distance(worldPos, Owner.transform.position) <= ShieldSize) { PerfectHit(worldPos); AddImpact(Owner.transform.InverseTransformPoint(worldPos)); // update dmg taken _dmgTaken -= comp.Owner.GetComponent <VolumeEntity>().ParamAttribut.Damage; // destroy bullet Builder.Instance.DestroyGameObject(comp.Owner, false); // destroy shield if (_dmgTaken <= 0) { Builder.Instance.DestroyGameObject(Owner, false); } } } }
public void GhostWallCollision(ComponentPosition positionComponent, ComponentCollision collisionComponent, ComponentVelocity velocityComponent, ComponentPosition fpositionComponent, ComponentCollision fcollisionComponent, ComponentVelocity fvelocityComponent, string entname) { if (entname == "Ghost") { if (positionComponent.Position.X > fpositionComponent.Position.X - 1 && positionComponent.Position.X < fpositionComponent.Position.X + 1 && positionComponent.Position.Y > fpositionComponent.Position.Y - 1 && positionComponent.Position.Y < fpositionComponent.Position.Y + 1) { if (velocityComponent.Velocity == up) { positionComponent.Position += downfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (velocityComponent.Velocity == down) { positionComponent.Position += upfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (velocityComponent.Velocity == right) { positionComponent.Position += leftfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (velocityComponent.Velocity == left) { positionComponent.Position += rightfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } } } else { if (fpositionComponent.Position.X > positionComponent.Position.X - 1 && fpositionComponent.Position.X < positionComponent.Position.X + 1 && fpositionComponent.Position.Y > positionComponent.Position.Y - 1 && fpositionComponent.Position.Y < positionComponent.Position.Y + 1) { if (fvelocityComponent.Velocity == up) { fpositionComponent.Position += downfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (fvelocityComponent.Velocity == down) { fpositionComponent.Position += upfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (fvelocityComponent.Velocity == right) { fpositionComponent.Position += leftfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } else if (fvelocityComponent.Velocity == left) { fpositionComponent.Position += rightfix; int test; Random rnd = new Random(); test = rnd.Next(4); switch (test) { case 0: velocityComponent.Velocity = right; break; case 1: velocityComponent.Velocity = left; break; case 2: velocityComponent.Velocity = up; break; case 3: velocityComponent.Velocity = down; break; } } } } }
public void GhostPlayerCollision(ComponentPosition positionComponent, ComponentCollision collisionComponent, ComponentVelocity velocityComponent, ComponentPosition fpositionComponent, ComponentCollision fcollisionComponent, ComponentVelocity fvelocityComponent, ComponentLife healthComponent, string entname, List <Entity> EntList, ComponentAudio faudioComponent) { int test = healthComponent.health(); if (test == 1) { if (entname == "Ghost") { if (positionComponent.Position.X > fpositionComponent.Position.X - 1 && positionComponent.Position.X < fpositionComponent.Position.X + 1 && positionComponent.Position.Y > fpositionComponent.Position.Y - 1 && positionComponent.Position.Y < fpositionComponent.Position.Y + 1) { GameScene.gameInstance.test(); faudioComponent.Start(); } } else { if (fpositionComponent.Position.X > positionComponent.Position.X - 1 && fpositionComponent.Position.X < positionComponent.Position.X + 1 && fpositionComponent.Position.Y > positionComponent.Position.Y - 1 && fpositionComponent.Position.Y < positionComponent.Position.Y + 1) { GameScene.gameInstance.test(); faudioComponent.Start(); } } } else { if (entname == "Ghost") { if (positionComponent.Position.X > fpositionComponent.Position.X - 1 && positionComponent.Position.X < fpositionComponent.Position.X + 1 && positionComponent.Position.Y > fpositionComponent.Position.Y - 1 && positionComponent.Position.Y < fpositionComponent.Position.Y + 1) { healthComponent.down(); fpositionComponent.Position = new Vector3(0.0f, 0.25f, -29.5f); foreach (Entity x in EntList) { if (x.Name == "Ghost") { List <IComponent> components = x.Components; IComponent GhostpositionComponent = components.Find(delegate(IComponent component) { return(component.ComponentType == ComponentTypes.COMPONENT_POSITION); }); GhostResest((ComponentPosition)GhostpositionComponent); } } ghostCount = 0; faudioComponent.Start(); } } else { if (fpositionComponent.Position.X > positionComponent.Position.X - 1 && fpositionComponent.Position.X < positionComponent.Position.X + 1 && fpositionComponent.Position.Y > positionComponent.Position.Y - 1 && fpositionComponent.Position.Y < positionComponent.Position.Y + 1) { healthComponent.down(); positionComponent.Position = new Vector3(0.0f, 0.25f, -29.5f); foreach (Entity x in EntList) { if (x.Name == "Ghost") { List <IComponent> components = x.Components; IComponent GhostpositionComponent = components.Find(delegate(IComponent component) { return(component.ComponentType == ComponentTypes.COMPONENT_POSITION); }); GhostResest((ComponentPosition)GhostpositionComponent); } } ghostCount = 0; faudioComponent.Start(); } } } }