Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        rm              = GetComponent <RaylineModel>();
        rm.OnDeadEvent += OnDeadEvent;
        trans           = GetComponent <RectTransform>();

        trans.localPosition = rm.CurrentPos;
        if (rm.targetPos.y - rm.fromPos.y < 0)
        {
            trans.rotation = Quaternion.Euler(new Vector3(0, 0, -rm.Degree));
        }
        else
        {
            trans.rotation = Quaternion.Euler(new Vector3(0, 0, rm.Degree));
        }
    }
Exemplo n.º 2
0
    private void OnEnemyHit(PlayerController beenHit, GameObject other)
    {
        if (other.name.IndexOf("RayLineObject") != -1)
        {
            RaylineModel rm = other.GetComponent <RaylineModel>();
            RayLineView  rv = other.GetComponent <RayLineView>();
            try
            {
                if (rv.Weapon.Owner.GetComponent <PlayerController>() == beenHit)
                {
                    return;
                }
            }
            catch
            {
                //maybe player die now!
            }


            Vector3 dir = rm.targetPos - rm.fromPos;
            beenHit.Hit(dir, rm.speed, 10);

            if (beenHit.HP == 0)
            {
                beenHit.OnHitEvent = null;
                beenHit.GetComponent <AgeCalculator>().OnDeadEvent = null;
                vc.CreateExplodeEffect(beenHit.Position, beenHit.color);
                vc.DestoryEnemy(beenHit.gameObject);
                vc.PlayDeadSound();
            }
            else
            {
                if (beenHit == vc.Player)
                {
                    vc.MakeEnemyHitEffect(beenHit, Color.white);
                }
                else
                {
                    vc.MakeEnemyHitEffect(beenHit, vc.EnemyColor);
                }
            }

            Destroy(other.gameObject);
        }
    }