// Use this for initialization
    protected override void StartActor()
    {
        b_PhysicsBehavior = new PhysicsBehavior(gameObject, GetComponent <Rigidbody2D>());
        mTargetTrasform   = PlayerReference.instance.player.transform;

        mBehaviorsList.Add(b_PhysicsBehavior);
    }
    //Constructorul bun

    public GenericEnemyBehavior(GameObject _gameObject)
    {
        mGameObject       = _gameObject;
        mTransform        = mGameObject.transform;
        mSamuraiTransform = PlayerReference.instance.mSamuraiGameObject.transform;
        mArcherTransform  = PlayerReference.instance.mArcherGameObject.transform;
        mTargetTransform  = PlayerReference.instance.player.transform;
        mActor            = mGameObject.GetComponent <GenericActor>();
        mAnimator         = mActor.GetAnimator();

        if (mActor == null)
        {
            Debug.LogWarning("Referinta catre Actor din GenericEnemyBehavior este null!!!");
        }

        if (mAnimator == null)
        {
            Debug.LogWarning("Referinta catre Animator din GenericEnemyBehavior este null!");
        }

        b_PhysicsBehavior  = new PhysicsBehavior(mGameObject, mGameObject.GetComponent <Rigidbody2D>());
        b_AnimatorBehavior = new AnimatorBehavior(mGameObject, mActor);

        mBehaviorsList.Add(b_PhysicsBehavior);
        mBehaviorsList.Add(b_AnimatorBehavior);
    }
Exemple #3
0
        public override void Update(GameTime gameTime)
        {
            PhysicsBehavior physics = GetBehavior <PhysicsBehavior>();

            if (physics != null)
            {
                _particles.Position  = this.Position;
                _particles.Direction = new Vector2(0, -1).RotateRadians(physics.Momentum.GetAngle());

                _particles.Update(gameTime);

                if (_explosion != null)
                {
                    _explosion.Update(gameTime);
                }
            }

            base.Update(gameTime);
        }
    //Constructorul bun

    public PlayerBehavior(GameObject _gameObject, Transform _basicAttackPrefab)
    {
        mGameObject         = _gameObject;
        mTransform          = mGameObject.transform;
        mBasicAttackPrefab  = _basicAttackPrefab;
        mTargetingTransform = mTransform.GetChild(1);
        mAnimator           = mTransform.GetChild(0);
        mActor = mGameObject.GetComponent <GenericActor>();

        if (mActor == null)
        {
            Debug.LogWarning("Referinta catre Actor din PlayerBehavior este null!!!");
        }

        if (mAnimator == null)
        {
            Debug.LogWarning("Referinta catre Animator din PlayerBehavior este null!");
        }

        //mMaxSpeed = PlayerReference.instance.playerMaxSpeed;
        mNormalSpeed = GlobalValues.instance.playerNormalSpeed;
        mAirSpeed    = GlobalValues.instance.playerAirSpeed;
        //mJumpTakeOffSpeed = PlayerReference.instance.playerMaxJump;
        mJumpTakeOffSpeed = GlobalValues.instance.jumpForce;

        b_PhysicsBehavior     = new PhysicsBehavior(mGameObject, mGameObject.GetComponent <Rigidbody2D>());
        b_BasicAttackBehavior = new BasicAttackBehavior(mBasicAttackPrefab);
        b_AnimatorBehavior    = new AnimatorBehavior(mGameObject, mActor);

        b_BasicAttackBehavior.AddHitableTag("enemy");

        mBehaviorsList.Add(b_PhysicsBehavior);
        mBehaviorsList.Add(b_BasicAttackBehavior);
        mBehaviorsList.Add(b_AnimatorBehavior);

        mFacingDirection = DIRECTION.RIGHT;
        mTargetingVector = Vector2.right;

        mNormalSprite = mGameObject.GetComponent <SpriteRenderer>().sprite;
        mIsHitSprite  = GlobalSpriteReference.instance.EnemyHit;
    }
    private void Start()
    {
        children = gameObject.GetComponentsInChildren <Transform>();

        if (gameObject.GetComponent <Collider>() == true)
        {
            colliderItems.Add(gameObject);
        }
        foreach (Transform obj in children)
        {
            if (obj.gameObject.GetComponent <Collider>() == true)
            {
                colliderItems.Add(obj.gameObject);
            }
        }

        player = GameObject.Find("Player");
        player.GetComponent <PlayerController>().RegisterObserver(this);

        PhysicsBehavior phys = null;

        switch (itemDensity)
        {
        case ItemDensity.HARD:
            phys = new HardItem();
            break;

        case ItemDensity.HEAVY:
            phys = new HeavyItem();
            break;

        case ItemDensity.SOFT:
            phys = new SoftItem();
            break;

        case ItemDensity.RUBBERY:
            phys = new RubberyItem();
            break;
        }
        phys.UpdatePhysicMaterial(gameObject);
    }
Exemple #6
0
        public override void Update(GameTime gameTime)
        {
            PhysicsBehavior physics = GetBehavior <PhysicsBehavior>();

            if (physics != null)
            {
                _particles.Position  = this.Position + (Vector2.UnitX * (Mirrored ? Sprite.Origin.X : -Sprite.Origin.X));
                _particles.Direction = new Vector2(0, -1).RotateRadians(physics.Momentum.GetAngle());

                _particles.Update(gameTime);
            }

            if (IsFlying)
            {
                Fuel--;
                _particles.Enabled = true;
            }
            else
            {
                _particles.Enabled = false;
            }
            base.Update(gameTime);
        }
Exemple #7
0
 public void SolveTask() => PhysicsBehavior.SolvingPhysics();