Ejemplo n.º 1
0
    public void FollowTarget(MinionScript newTarget)
    {
        agent.stoppingDistance = newTarget.radius * .8f;
        agent.updateRotation   = false;

        target = newTarget.transform;
    }
Ejemplo n.º 2
0
    public void spawnMinion(GameObject target)
    {
        if (currentNrOfMinions < inventory.GetFetchers())
        {
            GameObject instance = (GameObject)Instantiate(minion);
            currentNrOfMinions++;
            SpriteRenderer minionRenderer = instance.GetComponent <SpriteRenderer>();
            SpriteRenderer playerRenderer = GetComponentInChildren <SpriteRenderer>();

            minionRenderer.color        = playerRenderer.color;
            instance.transform.position = transform.position;

            Rigidbody2D minionBody = instance.GetComponent <Rigidbody2D>();

            float angle = Random.value * 360 * Mathf.Deg2Rad;
            float forceX, forceY;
            forceX = minionSpawnForce * Mathf.Sin(angle);
            forceY = minionSpawnForce * Mathf.Cos(angle);

            minionBody.velocity = new Vector3(forceX, forceY);
            MinionScript minionScript = instance.GetComponent <MinionScript>();
            minionScript.ownerPlayer = gameObject;
            minionScript.target      = target;
        }
    }
Ejemplo n.º 3
0
 // Start is called before the first frame update
 void Start()
 {
     parentobj      = transform.parent.gameObject;
     localScale     = transform.localScale;
     spriteRenderer = GetComponent <SpriteRenderer>();
     parent         = parentobj.GetComponent <MinionScript>();
 }
Ejemplo n.º 4
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (!collision.gameObject.tag.Equals(tag))
        {
            enemyCastle = collision.gameObject.GetComponent <Castle>();
            if (enemyCastle != null)
            {
                //Debug.Log("Hurting castel");
                enemyCastle.Hurt(attack);
                Die();
            }
            else
            {
                //Debug.Log("colission between " + tag+ " and " + collision.gameObject.tag);
                enemy = collision.gameObject.GetComponent <MinionScript>();
                //bounce
                transform.position = Vector2.MoveTowards(transform.position, collision.gameObject.transform.position, -1 * bounce);
                collision.gameObject.transform.position = Vector2.MoveTowards(collision.gameObject.transform.position, transform.position, -1 * bounce);

                //attack
                if (enemy.Hurt(attack))
                {
                    gainXP();
                }
            }
        }
    }
Ejemplo n.º 5
0
    public JSONObject toJSONObject()
    {
        MinionScript minion = this.GetComponent <MinionScript> ();
        JSONObject   js     = new JSONObject();
        JSONObject   jo     = null;

        js.AddField("_instanceID", this.Entity.GetInstanceID());
        js.AddField("minion_name", minion.name);
        if (leftHand != null)
        {
            ItemData tmpid = ScriptableObject.CreateInstance <ItemData>();
            tmpid.setItem(leftHand);
            js.AddField("left_hand", tmpid);
        }
        else
        {
            js.AddField("left_hand", jo);
        }

        if (rightHand != null)
        {
            ItemData tmpid = ScriptableObject.CreateInstance <ItemData>();
            tmpid.setItem(rightHand);
            js.AddField("right_hand", tmpid);
        }
        else
        {
            js.AddField("right_hand", jo);
        }

        return(js);
    }
Ejemplo n.º 6
0
 void minionDeathEventHandler(Vector3 pos, MinionScript ms)
 {
     if (minionAudio != null)
     {
         minionAudio.Stop();
         Destroy(this.gameObject);
     }
 }
Ejemplo n.º 7
0
 void OnTriggerExit2D(Collider2D collision)
 {
     if (collision.gameObject.tag.Equals("Red") || collision.gameObject.tag.Equals("Blue") || collision.gameObject.tag.Equals("Green"))
     {
         //Debug.Log("colission between " + tag+ " and " + collision.gameObject.tag);
         MinionScript minion = collision.gameObject.GetComponent <MinionScript>();
         minion.isInBattleGround = false;
     }
 }
Ejemplo n.º 8
0
 // Start is called before the first frame update
 void Start()
 {
     maxhealth        = health = 10f;
     minion           = prefab.GetComponent <MinionScript>();
     minion.maxhealth = 10;
     minion.speed     = 0.5f;
     minionCap        = 5000;
     //InvokeRepeating("Spawn",delay,rate);
     StartCoroutine(SpawnWithCoroutine());
 }
    public void ExecuteExplosion()
    {
        MinionScript ms = parentGameObject.GetComponent <MinionScript>();

        if (ms == null)
        {
            print("XXXXXXXXXXXXX NULLLLLLLLL!!!");
        }

        EventManager.TriggerEvent <MinionDeathEvent, Vector3, MinionScript>(parentGameObject.transform.position + Vector3.up * 0.02f, ms);
    }
Ejemplo n.º 10
0
    /*
     * Returns the time of the next auto-attack
     * */
    public float autoAttack(MinionScript enemy)
    {
        float damageAmount = getWeaponDamage();
        if(finalHourActive){
            damageAmount *= 1.4f;
            awardHealth (damageAmount * .5f);
        }

            a.Play("Attack" + (((int)(Random.value * 2)) + 1));
        enemy.damage(damageAmount);
        return Time.time + WeaponSpeed;
    }
Ejemplo n.º 11
0
    void minionSpawnEventHandler(MinionScript minion)
    {
        if (minionSpawnAudio)
        {
            EventSound3D snd = Instantiate(eventSound3DPrefab, minion.transform.position, Quaternion.identity, null);

            snd.audioSrc.clip = this.minionSpawnAudio;

            snd.audioSrc.minDistance = 5f;
            snd.audioSrc.maxDistance = 100f;

            snd.audioSrc.Play();
        }
    }
Ejemplo n.º 12
0
    void minionDeathEventHandler(Vector3 pos, MinionScript ms)
    {
        if (minionDeathAudio)
        {
            EventSound3D snd = Instantiate(eventSound3DPrefab, pos, Quaternion.identity, null);

            snd.audioSrc.clip = this.minionDeathAudio;

            snd.audioSrc.minDistance = 5f;
            snd.audioSrc.maxDistance = 100f;

            snd.audioSrc.Play();
        }
    }
Ejemplo n.º 13
0
 IEnumerator SpawnWithCoroutine()
 {
     while (true)
     {
         var delay = Random.Range(minSpawn, maxSpawn);
         //Debug.Log("callingSpawn. delay till next call:" + delay);
         GameObject   NewChild    = Instantiate(prefab, transform);
         MinionScript childScript = NewChild.GetComponent <MinionScript>();
         NewChild.tag = this.tag;
         for (int i = 0; i < level; i++)
         {
             childScript.LevelUp();
         }
         yield return(new WaitForSeconds(delay));
     }
 }
Ejemplo n.º 14
0
    public bool canPick(TWItemScript item)
    {
        MinionScript minion   = this.GetComponent <MinionScript>();
        bool         pickable = false;

        if (hayHueco(item.item))
        {
            int it = item.item.Peso, man = this.pesoManos(), fu = minion.maxFuerza;
            if ((it + man) < fu)
            {
                pickable = true;
            }
        }

        return(pickable);
    }
Ejemplo n.º 15
0
    void Attack(MinionScript target)
    {
                if (target.GridX >= gameObject.GetComponent<MinionScript>().GridX - Range || target.GridX <= gameObject.GetComponent<MinionScript>().GridX + Range)
                { 
                    if()
                    {


                    }
                    else
                    {

                    }
                enemyobj = GameObject.FindGameObjectWithTag("Minion P1");
                canAttack = true;
                if (Input.GetKey(KeyCode.K))
                {
                    if (canAttack == true)
                    {
                        target.GetComponent<MinionScript>().Hp = target.GetComponent<MinionScript>().Hp - gameObject.GetComponent<MinionScript>().Dmg;
                        Debug.Log("ATtack!");
                        Attack(enemy);
                        if (enemy.Hp <= 0)
                        {
                            Destroy(enemyobj);
                        }
                    }
                }
            }
            else if (selected == true && enemy.GetComponent<MinionScript>().PlayerOwner == 0)
            {
                enemyobj = GameObject.FindGameObjectWithTag("Minion P2");
                if (Input.GetKey(KeyCode.K))
                {
                    Attack(enemy);
                    if (enemy.Hp <= 0)
                    {
                        Destroy(enemyobj);
                    }
                }
            }
        }
Ejemplo n.º 16
0
    void Start()
    {
        HittableMinonList = new List<GameObject>();
        // Pedro
        MinionObj = gameObject;
        MinionTilePos = MinionObj.GetComponent<GridScript>();
        movementleft = Move;
        Turn = GameObject.Find("EndTurn");
        Undo = GameObject.Find("UndoButton"); 
        Comfirm = GameObject.Find("ConfirmButton");
        DoOnceForver = true;
        Confirming = false;
        selected = false;
        halo = GetComponent("Halo");
        YetAnotherDoOnce = false;

        // Pedro

        enemy = enemyobj.GetComponent<MinionScript>();
    }
Ejemplo n.º 17
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = cam.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit, 100)) //movementMask))
            {
                motor.MoveToPoint(hit.point);

                RemoveFocus();
            }

            if (Physics.Raycast(ray, out hit, 100))
            {
                MinionScript minionScript = hit.collider.GetComponent <MinionScript>();
                if (minionScript != null)
                {
                    SetFocus(minionScript);
                }
            }
        }
    }
Ejemplo n.º 18
0
        public void Execute()
        {
            //If on cooldown, return
            if(Time.time < nextAttack)
                return;

            player.playAnimation(animationName);

            nextAttack = Time.time + player.WeaponSpeed;
            Vector3 position = player.gameObject.transform.position;
            MinionScript[] enemies = new MinionScript[numPossibleTargets];
            int index = 0;
            Collider[] targets = Physics.OverlapSphere(position, radius);
            foreach(Collider t in targets){
                MinionScript enemy = t.gameObject.GetComponent(typeof(MinionScript)) as MinionScript;
                if(enemy){
                    Vector3 direction = Vector3.Normalize(enemy.gameObject.transform.position - player.gameObject.transform.position);
                    float dot = Vector3.Dot(direction, player.gameObject.transform.forward);
                    if(dot > 0.707f){
                        enemies[index++] = enemy;
                        if(index > numPossibleTargets - 1) //If the maximum number of targets has been reached, stop adding new ones.
                        break;
                    }
                }
            }

            //If there are no enemies to hit, return
            if(index == 0)
                return;

            float damagePerTarget = player.WeaponDamage * 0.5f;
            foreach(MinionScript enemy in enemies){
                if(enemy)
                    enemy.damage(damagePerTarget);
            }
        }
Ejemplo n.º 19
0
 /*
  * Returns the time of the next auto-attack
  * */
 public float autoAttack(MinionScript enemy)
 {
     a.Play("Attack" + (((int)(Random.value * 3)) + 1));
     enemy.damage(WeaponDamage);
     return Time.time + WeaponSpeed;
 }
Ejemplo n.º 20
0
 public void setCurrentEnemy(MinionScript enemy)
 {
     this.currentEnemy = enemy;
 }
Ejemplo n.º 21
0
 void RemoveFocus()
 {
     focus = null;
     motor.StopFollowingTarget();
 }
Ejemplo n.º 22
0
 void SetFocus(MinionScript newFocus)
 {
     focus = newFocus;
     motor.FollowTarget(newFocus);
 }