// Token: 0x0600001F RID: 31 RVA: 0x000035A0 File Offset: 0x000017A0
        private void ProcessAttack(AttackBehaviorBase attack)
        {
            bool flag = attack == null;

            if (!flag)
            {
                bool flag2 = attack is BasicAttackBehavior;
                if (flag2)
                {
                    BasicAttackBehavior basicAttackBehavior = attack as BasicAttackBehavior;
                    basicAttackBehavior.Cooldown            = 0f;
                    basicAttackBehavior.RequiresLineOfSight = false;
                    basicAttackBehavior.MinRange            = -1f;
                    basicAttackBehavior.Range = -1f;
                    bool flag3 = attack is TeleportBehavior;
                    if (flag3)
                    {
                        this.TeleBehav = (basicAttackBehavior as TeleportBehavior);
                        basicAttackBehavior.RequiresLineOfSight = true;
                        basicAttackBehavior.MinRange            = 1000f;
                        basicAttackBehavior.Range = 0.1f;
                        this.DoTeleport           = typeof(TeleportBehavior).GetMethod("DoTeleport", BindingFlags.Instance | BindingFlags.NonPublic);
                    }
                    bool flag4 = attack is DashBehavior;
                    if (flag4)
                    {
                        this.dashBehav = (basicAttackBehavior as DashBehavior);
                        basicAttackBehavior.RequiresLineOfSight = true;
                        basicAttackBehavior.MinRange            = 1000f;
                        basicAttackBehavior.Range = 0.1f;
                        this.BeginState           = typeof(DashBehavior).GetMethod("BeginState", BindingFlags.Instance | BindingFlags.NonPublic);
                        this.State[0]             = typeof(DashBehavior).GetNestedType("DashState", BindingFlags.NonPublic).GetField("Charge").GetValue(this.dashBehav);
                        this.EndState             = typeof(DashBehavior).GetMethod("EndState", BindingFlags.Instance | BindingFlags.NonPublic);
                    }
                    bool flag5 = basicAttackBehavior is ShootGunBehavior;
                    if (flag5)
                    {
                        ShootGunBehavior shootGunBehavior = basicAttackBehavior as ShootGunBehavior;
                        shootGunBehavior.LineOfSight   = false;
                        shootGunBehavior.EmptiesClip   = false;
                        shootGunBehavior.Cooldown      = 0.3f;
                        shootGunBehavior.RespectReload = true;
                    }
                }
                else
                {
                    bool flag6 = attack is AttackBehaviorGroup;
                    if (flag6)
                    {
                        AttackBehaviorGroup attackBehaviorGroup = attack as AttackBehaviorGroup;
                        for (int i = 0; i < attackBehaviorGroup.AttackBehaviors.Count; i++)
                        {
                            this.ProcessAttack(attackBehaviorGroup.AttackBehaviors[i].Behavior);
                        }
                    }
                }
            }
        }
    //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;
    }
Example #3
0
 public Frostbolt()
 {
     SpellName = "Frostbolt";
     AttackBehavior = new BasicAttackBehavior();
     AbilityCooldown = new Cooldown(MAX_COOLDOWN);
 }
Example #4
0
 public Basic()
 {
     SpellName = "Basic";
     AttackBehavior = new BasicAttackBehavior();
     AbilityCooldown = new Cooldown(MAX_COOLDOWN);
 }
Example #5
0
 public Shield()
 {
     SpellName = "Shield";
     AttackBehavior = new BasicAttackBehavior();
     AbilityCooldown = new Cooldown(MAX_COOLDOWN);
 }