Ejemplo n.º 1
0
 public void Stun(float time, DirectionHorizontal moveDirection)
 {
     cdStun = Time.time + time;
     if (moveDirection != DirectionHorizontal.NONE)
     {
         mgMovement.ForceMove(moveDirection, time);
     }
 }
Ejemplo n.º 2
0
 public void MoveDirection(DirectionHorizontal d)
 {
     if (moveDirLocked)
     {
         return;
     }
     moveDir = d;
 }
Ejemplo n.º 3
0
    public void ForceMove(DirectionHorizontal dir, float time)
    {
        float t = Time.time + time;

        moveDirLocked   = true;
        flipLocked      = true;
        cdMoveDirLocked = t;
        cdFlipLocked    = t;
        moveDir         = dir;
    }
Ejemplo n.º 4
0
 public bool Damage(int amount, DirectionHorizontal dir)
 {
     if (IsInvincible())
     {
         return(false);                       //Do nothing on invincible
     }
     health.Decrease(amount);
     MakeInvincible(cdbInv);        //Make player invincible
     Stun(cdbStun, dir);            //Stun player
     mgJump.ForceJump(cdbStunJump); //Stun jump
     mgLevel.RemovePlayerHealth(amount);
     mgAttack.DisruptAttack();
     return(true);
 }
Ejemplo n.º 5
0
 public static Direction ToDirection(DirectionHorizontal dir)
 {
     if (dir == DirectionHorizontal.LEFT)
     {
         return(Direction.LEFT);
     }
     else if (dir == DirectionHorizontal.RIGHT)
     {
         return(Direction.RIGHT);
     }
     else
     {
         return(Direction.NONE);
     }
 }
Ejemplo n.º 6
0
 Collider2D[] GetCollisions(DirectionHorizontal dir)
 {
     if (dir == DirectionHorizontal.RIGHT)
     {
         return(Physics2D.OverlapBoxAll(rightCollider.transform.position, rightCollider.bounds.size, 0f));
     }
     else if (dir == DirectionHorizontal.LEFT)
     {
         return(Physics2D.OverlapBoxAll(leftCollider.transform.position, leftCollider.bounds.size, 0f));
     }
     else
     {
         return(new Collider2D[0]);
     }
 }
Ejemplo n.º 7
0
        private static Expression XCondition(DirectionHorizontal value)
        {
            var x = ThisExpr.Instance.MakeIndex("input").MakeIndex("x");

            switch (value)
            {
            case DirectionHorizontal.Empty:
                return(x.IsZero());

            case DirectionHorizontal.Front:
                return(x.NotZero());

            case DirectionHorizontal.Any:
            default:
                return(new ConstNumberExpr(1));
            }
        }
Ejemplo n.º 8
0
 bool HasWall(DirectionHorizontal dir)
 {
     Collider2D[] cols = null;         //Array of collisions
     if (facingRight)
     {
         cols = GetCollisions(dir);                     //If facing right, get collisions to direction
     }
     else
     {
         cols = GetCollisions(E.Opposite(dir));          //If facing left, get collisions of opposite direction
     }
     foreach (Collider2D c in cols)
     {
         if (c.transform != transform && !c.isTrigger)
         {
             return(true);                                                                           //If collision is not me and not a trigger, it's a wall
         }
     }
     return(false);        //No collisions
 }
Ejemplo n.º 9
0
 public override void AttackStarting()
 {
     boss.FacePlayer(approachToPlayer == Approach.TOWARDS);
     moveDir = boss.GetDirectionToPlayer();
     mgSize.FadeSize(mgSize.GetSizeMultiplied(1.3f, 0.7f), data.timeStart.value);
 }