Ejemplo n.º 1
0
    private void Update()
    {
        if (status == FamiliarStatus.FOLLOW)
        {
            targetPosition = player.transform.position;
        }

        if (targets.Count > 0 && status != FamiliarStatus.ATTACK)
        {
            status = FamiliarStatus.ATTACK;
        }

        if (targets.Count > 0 && targets[0] == null)
        {
            targets.RemoveAt(0);
        }

        if (targets.Count == 0 && status == FamiliarStatus.ATTACK)
        {
            status = FamiliarStatus.MOVE;
        }

        if (Vector3.Distance(transform.position, player.gameObject.transform.position) < stopRadius && slot != null)
        {
            player.AddItem(slot);
            Destroy(slot.gameObject);
            slot = null;
        }
    }
Ejemplo n.º 2
0
 public void LostTarget(GameObject target)
 {
     targets.Remove(target);
     if (targets.Count == 0)
     {
         status = FamiliarStatus.MOVE;
     }
 }
Ejemplo n.º 3
0
    public void SpawnFXOfType(FamiliarStatus command)
    {
        Color runecolor = runeDefinition.GetColorFromCommand(command);

        FXSprite.color = runecolor;
        if (FXSprite.TryGetComponent <Animator>(out Animator a))
        {
            a.Play("RuneSpin");
        }
    }
Ejemplo n.º 4
0
 public void AwaitMove(FamiliarStatus command, Vector3 target)
 {
     status = command;
     if (command == FamiliarStatus.FOLLOW)
     {
         targetPosition = player.transform.position;
     }
     else
     {
         targetPosition = target;
     }
 }
Ejemplo n.º 5
0
    private void Start()
    {
        targets = new List <GameObject>();
        status  = FamiliarStatus.FOLLOW;

        target.RegisterCFP(AwaitMove);

        projPool = new GameObject[projectilePoolSize];
        for (int i = 0; i < projectilePoolSize; i++)
        {
            GameObject t = Instantiate(proj);
            t.GetComponent <Projectile>().FollowMe(transform);
            t.SetActive(false);
            projPool[i] = t;
        }
    }
Ejemplo n.º 6
0
    public void Pickup(IItem item)
    {
        if (slot == null)
        {
            slot = item;
        }
        else
        {
            slot.gameObject.transform.parent     = null;
            slot.gameObject.transform.localScale = new Vector3(1, 1, 1);
            slot.gameObject.transform.position   = item.gameObject.transform.position + new Vector3(0.25f, 0, 0);
            slot.gameObject.GetComponent <BoxCollider2D>().enabled = true;

            slot = item;
        }

        rb.velocity    = Vector2.zero;
        status         = FamiliarStatus.MOVE;
        targetPosition = transform.position;
    }
Ejemplo n.º 7
0
    public Color GetColorFromCommand(FamiliarStatus command)
    {
        switch (command)
        {
        case FamiliarStatus.FOLLOW:
            return(FollowColor);

        case FamiliarStatus.MOVE:
            return(MoveColor);

        case FamiliarStatus.ATTACK:
            return(AttackColor);

        case FamiliarStatus.RETRIEVE:
            return(RetrieveColor);

        case FamiliarStatus.INTERACT:
            return(InteractColor);

        default:
            return(Color.white);
        }
    }
Ejemplo n.º 8
0
 public void FoundTarget(GameObject target)
 {
     status = FamiliarStatus.ATTACK;
     targets.Add(target);
     rb.velocity = Vector2.zero;
 }