Exemple #1
0
    public Enemy(string prefebs)
    {
        model = (GameObject)GameObject.Instantiate(Resources.Load(prefebs));

        status         = model.GetComponent <CharacterStatus> ();
        status.CurPose = CharacterStatus.Pose.Run;
        status.Parent  = this;

        //blood
        blood = (GameObject)GameObject.Instantiate(Resources.Load("blood"));
        Axis2DTo3D axisTrans = model.GetComponent <Axis2DTo3D> ();

        axisTrans.Icon = blood.transform;
        //event
    }
Exemple #2
0
    public override void OnBeHit(int damage)
    {
        AudioSource.PlayClipAtPoint(AudioManager._instance.enemyHitMusic, this.GetPos());
        base.OnBeHit(damage);
        if (model != null)
        {
            if (!node.GetArmorPiercing)
            {
                if (damage - GetArmor > 0)
                {
                    data.life = data.life - (damage - GetArmor);
                }
                else if (damage - GetArmor <= 0)
                {
                    data.life -= 1;
                }
            }
            else if (node.GetArmorPiercing)
            {
                if (GetArmor != 0)
                {
                    if (damage - GetArmor > 0)
                    {
                        data.life = data.life - (damage - GetArmor + 1);
                    }
                    else
                    {
                        data.life -= 1;
                    }
                }
                else if (GetArmor == 0)
                {
                    data.life = data.life - damage;
                }
            }
            if (data.life <= 0)
            {
                //hide the blood number panel
                Axis2DTo3D axis = model.GetComponent <Axis2DTo3D> ();
                axis.SetShow(false);
                data.life      = 0;
                status.CurPose = CharacterStatus.Pose.Die;
                OnDie();
                //die position
                diePos = model.transform.position;
                EnemySpawnManager._instance.enemyList.Remove(this);

                //destory the game object
                GameManager.Instance.DeleteById(ID);
                //create a new game object to show the animation die
                dieObj = DieAniPool.instance.Pop();
                dieObj.transform.position = diePos;
                return;
            }
            if (data.life > 0)
            {
                Transform bloodFull = blood.transform.GetChild(1);
                bloodFull.gameObject.transform.localScale = new Vector3((float)data.life / (float)data.maxLife,
                                                                        bloodFull.gameObject.transform.localScale.y,
                                                                        bloodFull.gameObject.transform.localScale.z);
                model.GetComponent <Axis2DTo3D>().SetShow(true);
            }
        }
    }