public override void Execute()
        {
            CardinalDirections direction = Direction.GetCardinalDirection(this.Unit.GetPosition(), this.Target);
            Vector3            point     = PointConverter.ToVector(Direction.GetDirection(direction));

            Destroy(Instantiate(lasserVFX, this.transform.position, RotationHelper.GetRotation(direction)), delay);
            StartCoroutine(Attack(direction, point));
        }
Beispiel #2
0
        private void PlayParticles(Point target)
        {
            Quaternion direction = RotationHelper.GetRotation(cardinalDirectionToRotate);

            Unit.FlipUnit(cardinalDirection);
            SkillActionFX?.Play(this.Unit.transform.position);
            SkillActionFX.UpdateParticlesRotation(direction);
            pukeSFx?.Play(this.transform.position);
        }
Beispiel #3
0
        private void SpawnSplit(CardinalDirections direction, Vector3 otherPosition)
        {
            Vector3 position = otherPosition + PointConverter.ToVector(Direction.GetDirection(direction));

            Quaternion     rotation = RotationHelper.GetRotation(direction);
            HoloBlastSplit bullet   = Instantiate(this.blast, position, rotation);

            Logcat.I($"Other position {otherPosition} Splitted bullet {position} rotation {rotation}");
            bullet.SetUp(boardController, unitsMap, this.secondAttackDamage, secondKnockback, new Point((int)otherPosition.x, 0, (int)otherPosition.z));
        }
        public void Instanciate(Point position, CardinalDirections direction)
        {
            if (direction == CardinalDirections.Center)
            {
                return;
            }

            GameObject instance       = Instanciate(position);
            Vector3    vectorPosition = instance.transform.position + GetPositionOffset(direction, 1.05f);

            instance.transform.position = vectorPosition;
            instance.transform.rotation = RotationHelper.GetRotation(direction, 90f, 0f);
        }
Beispiel #5
0
    public void SimpleRotationTest()
    {
        var objectPosition = new Vector3(0, 0, 0);
        var objectRotation = new Vector3(0, 0, 0);

        var startPosition   = new Vector3(0, 2, 0);
        var currentPosition = new Vector3(0, 2, -2);


        var newRotation = RotationHelper.GetRotation(objectPosition, objectRotation, startPosition, currentPosition);


        Assert.AreEqual(new Vector3(-45, 0, 0), newRotation);
    }
Beispiel #6
0
    public void RotateVerticalBoundaryTest()
    {
        var objectPosition = new Vector3(0, 0, 0);
        var objectRotation = new Vector3(50, 0, 0);

        var startPosition   = new Vector3(0, 2, -2);
        var currentPosition = new Vector3(0, 0, -2);


        var newRotation = RotationHelper.GetRotation(objectPosition, objectRotation, startPosition, currentPosition);


        Assert.AreEqual(new Vector3(0, 0, 0), newRotation);
    }
Beispiel #7
0
    public void RotateHorizontalTest()
    {
        var objectPosition = new Vector3(0, 0, 0);
        var objectRotation = new Vector3(0, 0, 0);

        var startPosition   = new Vector3(0, 0, -2);
        var currentPosition = new Vector3(2, 1, -2);


        var newRotation = RotationHelper.GetRotation(objectPosition, objectRotation, startPosition, currentPosition);


        Assert.AreEqual(new Vector3(0, -45, 0), newRotation);
    }
Beispiel #8
0
        private void SpawnSplit(UnitsMap map, BoardController boardController, CardinalDirections direction, Point attackerPosition)
        {
            if (InstantiatedSplits >= maxSplits)
            {
                return;
            }

            InstantiatedSplits++;
            Logcat.I(this, $"Multisplit instances {InstantiatedSplits}");

            CardinalDirections[] directions = PlayerUtils.HoloBlastSplitDirections(direction);
            Vector3 position = PointConverter.ToVector(attackerPosition) + PointConverter.ToVector(Direction.GetDirection(direction));

            position.y = fixedPosition;
            Quaternion rotation = RotationHelper.GetRotation(direction);
            MultiSplit instance = Instantiate(split, position, rotation);

            instance.SetUp(this.unitsMap, boardController, attackerPosition, directions, secondAttackDamage, secondAttackDamage, knockback);
        }
        public override void Execute()
        {
            CardinalDirections direction = Direction.GetCardinalDirection(this.Unit.GetPosition(), this.Target);
            Vector3            point     = PointConverter.ToVector(Direction.GetDirection(direction));

            //// Logcat.I(this, $"Shooting with direction {direction} vector {point}");
            this.transform.localPosition += point;
            GausCannon gausCannon = MonoBehaviour.Instantiate(this.bullet, this.transform.position, RotationHelper.GetRotation(direction));

            gausCannon.SetUp(this.UnitsMap, this.BoardController, this.Unit.GetPosition(), this.Knockback, this.damage);
            this.transform.localPosition -= point;
        }
Beispiel #10
0
        public override void Execute()
        {
            CardinalDirections direction = Direction.GetCardinalDirection(this.Unit.GetPosition(), this.Target);
            Vector3            point     = PointConverter.ToVector(Direction.GetDirection(direction));

            this.transform.localPosition += point;
            HoloBlast blast = MonoBehaviour.Instantiate(this.bullet, this.gameObject.transform.position, RotationHelper.GetRotation(direction));

            blast.SetUp(this.UnitsMap, this.BoardController, this.Unit.GetPosition(), PlayerUtils.HoloBlastSplitDirections(direction), this.firstAttackDamage, this.secondAttackDamage, this.Knockback);
            this.transform.localPosition -= point;
        }