Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
 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;
     }
 }
Esempio n. 3
0
    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);
                }
            }
        }
    }
Esempio n. 4
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 5
0
        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();
                    }
                }
            }
        }