public void Stun(float time, DirectionHorizontal moveDirection) { cdStun = Time.time + time; if (moveDirection != DirectionHorizontal.NONE) { mgMovement.ForceMove(moveDirection, time); } }
public void MoveDirection(DirectionHorizontal d) { if (moveDirLocked) { return; } moveDir = d; }
public void ForceMove(DirectionHorizontal dir, float time) { float t = Time.time + time; moveDirLocked = true; flipLocked = true; cdMoveDirLocked = t; cdFlipLocked = t; moveDir = dir; }
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); }
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); } }
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]); } }
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)); } }
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 }
public override void AttackStarting() { boss.FacePlayer(approachToPlayer == Approach.TOWARDS); moveDir = boss.GetDirectionToPlayer(); mgSize.FadeSize(mgSize.GetSizeMultiplied(1.3f, 0.7f), data.timeStart.value); }