Esempio n. 1
0
    public override void Activate(GamePawn user, Tile target)
    {
        Debug.Log(user.gameObject.name + " used " + skillName + " on " + target.GetPawnOnTile().transform.name);
        Direction dir = Direction.Up;

        if (user.transform.position.x - target.transform.position.x > .1f)
        {
            dir = Direction.Left;
        }
        else if (user.transform.position.x - target.transform.position.x < .1f)
        {
            dir = Direction.Right;
        }
        else if (user.transform.position.z - target.transform.position.z > .1f)
        {
            dir = Direction.Down;
        }
        else if (user.transform.position.z - target.transform.position.z < .1f)
        {
            dir = Direction.Up;
        }

        SkillManager.instance.Hook(user, target.GetPawnOnTile(), dir);
        if (user is EnemieBehaviour)
        {
            EnemieBehaviour enemy = (EnemieBehaviour)user;
            enemy.actionPoints -= cost;
        }
        else if (user is PlayerCharacter)
        {
            PlayerCharacter player = (PlayerCharacter)user;
        }
        user.EndAction();
    }
Esempio n. 2
0
    public void Hook(GamePawn user, GamePawn target, Direction dir)
    {
        Tile     hookTile = target.GetTile().GetNeighbours(dir);
        Sequence s        = DOTween.Sequence();

        GameObject.Instantiate(anchor, user.transform.position + Vector3.up, Quaternion.identity);

        s.Append(anchor.transform.DOMove(target.transform.position + Vector3.up, .3f))
        .SetEase(Ease.Linear);

        //Play vertical Anim
        s.Append(target.transform.DOMove(hookTile.transform.position + new Vector3(0, hookTile.transform.localScale.y, 0), 0.3f)
                 .SetEase(Ease.Linear)
                 .OnComplete(() =>
        {
            target.GetTile().SetPawnOnTile(null);
            target.SetTile(hookTile);
        }));


        s.OnComplete(() =>
        {
            user.EndAction();
        });
    }
Esempio n. 3
0
File: Buff.cs Progetto: S4slean/TONO
 public override void Activate(GamePawn user, Tile target)
 {
     if (user is EnemieBehaviour)
     {
         EnemieBehaviour enemy = (EnemieBehaviour)user;
         FXPlayer.Instance.PlayFX("BuffEnemy", enemy.transform.position + Vector3.up);
         enemy.Buff();
     }
     user.EndAction();
 }
Esempio n. 4
0
 public override void Activate(GamePawn user, Tile target)
 {
     target.GetPawnOnTile().ReceiveDamage(damage);
     if (user is EnemieBehaviour)
     {
         EnemieBehaviour enemy = (EnemieBehaviour)user;
         enemy.actionPoints -= cost;
         enemy.anim.SetTrigger("Melee");
         SoundManager.Instance.PlaySound(SoundManager.Instance.wish);
     }
     user.EndAction();
 }
Esempio n. 5
0
    public virtual void Activate(GamePawn user, Tile target)
    {
        //Debug.Log(user.gameObject.name + " used " + skillName + " on " + target.GetPawnOnTile().transform.name);
        if (user is EnemieBehaviour)
        {
            EnemieBehaviour enemy = (EnemieBehaviour)user;
            enemy.actionPoints -= cost;
        }

        //UI_Manager.instance.characterInfoPanel.SetCharacterInfoWithCost(UI_SelectedCharacterInfo.Stats.PA, cost);

        user.EndAction();
    }
Esempio n. 6
0
    public override void SetDestination(Tile destination, bool showHighlight = false, bool movedByPlayer = false)
    {
        //print("Destination : " + destination.transform.position);
        List <Tile> path = Pathfinder_AStar.instance.SearchForShortestPath(associatedTile, destination);

        if (path.Count != 0)
        {
            int highlightPathID = -1;

            if (showHighlight)
            {
                Highlight_Manager.instance.HideAllHighlight();
                highlightPathID = Highlight_Manager.instance.ShowHighlight(path, HighlightMode.MoveHighlight);
            }

            Sequence s = DOTween.Sequence();
            foreach (Tile tile in path)
            {
                s.Append(transform.DOMove(tile.transform.position + new Vector3(0, tile.transform.localScale.y, 0), 0.3f)
                         .SetEase(Ease.Linear)
                         .OnComplete(() =>
                {
                    associatedTile.SetPawnOnTile(null);
                    associatedTile = tile;
                    associatedTile.SetPawnOnTile(this);
                    if (tile.highlighted)
                    {
                        associatedTile.rend.material = associatedTile.defaultMaterial;
                        associatedTile.highlighted   = false;
                    }
                }));
            }

            s.OnComplete(() =>
            {
                if (highlightPathID > -1)
                {
                    Highlight_Manager.instance.HideHighlight(highlightPathID);
                }

                anim.SetBool("Rolling", false);
                _kicker.EndAction();
                _kicker = null;
                EndAction();
            });
        }
    }
Esempio n. 7
0
    public override void OnKicked(GamePawn user, int dmg, Direction dir)
    {
        ReceiveDamage(dmg);
        Tile newTile = GetTile().GetNeighbours(dir);

        Sequence s = DOTween.Sequence();

        //Play vertical Anim
        s.Append(transform.DOMove(newTile.transform.position + new Vector3(0, newTile.transform.localScale.y, 0), 0.3f)
                 .SetEase(Ease.Linear)
                 .OnComplete(() =>
        {
            GetTile().SetPawnOnTile(null);
            SetTile(newTile);
        }));


        s.OnComplete(() =>
        {
            user.EndAction();
        });
    }
Esempio n. 8
0
    void Update()
    {
        if (_thrown)
        {
            _throwTimeTracker += Time.deltaTime;
            self.position      = new Vector3(Mathf.Lerp(_thrower.transform.position.x, _target.position.x, _throwTimeTracker / travelTime),
                                             Mathf.Lerp(_thrower.transform.position.y + 1, _target.position.y + 1, _throwTimeTracker / travelTime) + trajectory.Evaluate(_throwTimeTracker / travelTime),
                                             Mathf.Lerp(_thrower.transform.position.z, _target.position.z, _throwTimeTracker / travelTime));

            if (TileBelow() != _associatedTile)
            {
                _associatedTile = TileBelow();
                _associatedTile.SetProjectileOnTile(this);
            }


            if (_throwTimeTracker > travelTime)
            {
                FXPlayer.Instance.PlayFX("BottleBreak", transform.position);
                _thrown           = false;
                _throwTimeTracker = 0;
                if (_target.TryGetComponent <PlayerCharacter>(out PlayerCharacter player))
                {
                    player.ReceiveDamage(damage);
                }
                else if (_target.TryGetComponent <Barrel>(out Barrel barrel))
                {
                    barrel.Explode();
                }
                else if (_target.TryGetComponent <Projectiles>(out Projectiles projectile))
                {
                    projectile.OnShot();
                }
                _thrower.EndAction();
                Destroy(gameObject);
            }
        }
    }
Esempio n. 9
0
    public void Jump(GamePawn user, GamePawn target, Direction dir)
    {
        currentActiveSkill = null;
        Tile jumpTile = target.GetTile().GetNeighbours(dir);

        Highlight_Manager.instance.HideHighlight(user.GetSkillPreviewID());

        Sequence s = DOTween.Sequence();

        PlayerManager.instance.playerCharacter.anim.SetTrigger("Jump");
        s.Append(user.transform.DOMove(jumpTile.transform.position + new Vector3(0, jumpTile.transform.localScale.y, 0), 0.3f)
                 .SetEase(Ease.Linear)
                 .OnComplete(() =>
        {
            user.GetTile().SetPawnOnTile(null);
            user.SetTile(jumpTile);
        }));


        s.OnComplete(() =>
        {
            user.EndAction();
        });
    }