public MMStateChangeEvent(MMStateMachine <T> stateMachine)
 {
     Target             = stateMachine.Target;
     TargetStateMachine = stateMachine;
     NewState           = stateMachine.CurrentState;
     PreviousState      = stateMachine.PreviousState;
 }
Esempio n. 2
0
        /// <summary>
        /// Initialize this weapon.
        /// </summary>
        public virtual void Initialization()
        {
            if (!_initialized)
            {
                Flipped             = false;
                _spriteRenderer     = this.gameObject.GetComponent <SpriteRenderer>();
                _comboWeapon        = this.gameObject.GetComponent <ComboWeapon>();
                WeaponState         = new MMStateMachine <WeaponStates>(gameObject, true);
                _aimableWeapon      = GetComponent <WeaponAim>();
                WeaponAmmo          = GetComponent <WeaponAmmo>();
                _animatorParameters = new List <List <int> >();
                InitializeAnimatorParameters();
                InitializeFeedbacks();
                _initialized = true;
            }
            WeaponState.ChangeState(WeaponStates.WeaponIdle);
            if (WeaponAmmo == null)
            {
                CurrentAmmoLoaded = MagazineSize;
            }

            if (_characterHorizontalMovement != null)
            {
                if (_characterHorizontalMovement.MovementSpeedMultiplier == 0f)
                {
                    _characterHorizontalMovement.MovementSpeedMultiplier = 1f;
                }
                _permanentMovementMultiplierStorage = _characterHorizontalMovement.MovementSpeedMultiplier;
            }
        }
Esempio n. 3
0
 protected virtual void Initialization()
 {
     _character  = GetComponent <CharacterMotor2D>();
     _controller = GetComponent <CController>();
     _characterHorizontalMovement = GetComponent <CharacterHorizontalMovement>();
     _characterGravity            = GetComponent <CharacterGravity>();
     _spriteRenderer = GetComponent <SpriteRenderer>();
     _health         = GetComponent <Health>();
     //BindAnimator();
     //_sceneCamera = _character.SceneCamera;
     _inputManager = _character.LinkedInputManager;
     _state        = _character.CharacterState;
     if (GetComponent <InputManager>() == null)
     {
         _character.LoadStates(_movement); _character.LoadCondition(_condition);
     }
     else
     {
         _movement = _character.MovementState; _condition = _character.ConditionState;
     }
     AbilityPermitted = true;
     if (_character.MovementState == null)
     {
         print("");
     }
     _abilityInitialized = true;
 }
Esempio n. 4
0
        /// <summary>
        /// Gets and stores input manager, camera and components
        /// </summary>
        protected virtual void Initialization()
        {
            if (this.gameObject.MMGetComponentNoAlloc <TopDownController2D>() != null)
            {
                CharacterDimension = CharacterDimensions.Type2D;
            }
            if (this.gameObject.MMGetComponentNoAlloc <TopDownController3D>() != null)
            {
                CharacterDimension = CharacterDimensions.Type3D;
            }

            // we initialize our state machines
            MovementState  = new MMStateMachine <CharacterStates.MovementStates>(gameObject, SendStateChangeEvents);
            ConditionState = new MMStateMachine <CharacterStates.CharacterConditions>(gameObject, SendStateChangeEvents);

            // we get the current input manager
            SetInputManager();
            // we get the main camera
            // we store our components for further use
            CharacterState = new CharacterStates();
            _controller    = this.gameObject.GetComponent <TopDownController> ();
            _health        = this.gameObject.GetComponent <Health> ();

            CacheAbilitiesAtInit();
            if (CharacterBrain == null)
            {
                CharacterBrain = this.gameObject.GetComponent <AIBrain>();
            }

            Orientation2D = FindAbility <CharacterOrientation2D>();
            Orientation3D = FindAbility <CharacterOrientation3D>();

            AssignAnimator();

            // instantiate camera target
            if (CameraTarget == null)
            {
                CameraTarget = new GameObject();
            }
            CameraTarget.transform.SetParent(this.transform);
            CameraTarget.transform.localPosition = Vector3.zero;
            CameraTarget.name = "CameraTarget";

            if (LinkedInputManager != null)
            {
                if (OptimizeForMobile && LinkedInputManager.IsMobile)
                {
                    if (this.gameObject.MMGetComponentNoAlloc <MMConeOfVision2D>() != null)
                    {
                        this.gameObject.MMGetComponentNoAlloc <MMConeOfVision2D>().enabled = false;
                    }
                }
            }
        }
        /// <summary>
        /// Gets and stores input manager, camera and components
        /// </summary>
        public virtual void Initialization()
        {
            // we initialize our state machines
            MovementState  = new MMStateMachine <CharacterStates.MovementStates>(this.gameObject, SendStateChangeEvents);
            ConditionState =
                new MMStateMachine <CharacterStates.CharacterConditions>(this.gameObject, SendStateChangeEvents);

            if (InitialFacingDirection == FacingDirections.Left)
            {
                IsFacingRight = false;
            }
            else
            {
                IsFacingRight = true;
            }

            // instantiate camera target
            if (CameraTarget == null)
            {
                CameraTarget = new GameObject();
            }

            CameraTarget.transform.SetParent(this.transform);
            CameraTarget.transform.localPosition = Vector3.zero;
            CameraTarget.name            = "CameraTarget";
            _cameraTargetInitialPosition = CameraTarget.transform.localPosition;

            // we get the current input manager
            SetInputManager();
            GetMainCamera();
            // we store our components for further use
            CharacterState  = new CharacterStates();
            _spriteRenderer = this.gameObject.GetComponent <SpriteRenderer>();
            _controller     = this.gameObject.GetComponent <CorgiController>();
            CacheAbilitiesAtInit();
            if (CharacterBrain == null)
            {
                CharacterBrain = this.gameObject.GetComponent <AIBrain>();
            }

            _health        = this.gameObject.GetComponent <Health>();
            _damageOnTouch = this.gameObject.GetComponent <DamageOnTouch>();
            CanFlip        = true;
            AssignAnimator();

            _originalGravity = _controller.Parameters.Gravity;

            ForceSpawnDirection();
        }
 /// <summary>
 /// Gets and stores components for further use
 /// </summary>
 protected virtual void Initialization()
 {
     _character              = GetComponent <Character>();
     _controller             = GetComponent <CorgiController>();
     _characterBasicMovement = GetComponent <CharacterHorizontalMovement>();
     _characterGravity       = GetComponent <CharacterGravity> ();
     _spriteRenderer         = GetComponent <SpriteRenderer>();
     _health = GetComponent <Health> ();
     BindAnimator();
     _sceneCamera        = _character.SceneCamera;
     _inputManager       = _character.LinkedInputManager;
     _state              = _character.CharacterState;
     _movement           = _character.MovementState;
     _condition          = _character.ConditionState;
     _abilityInitialized = true;
 }
Esempio n. 7
0
 /// <summary>
 /// Gets and stores components for further use
 /// </summary>
 protected virtual void Initialization()
 {
     BindAnimator();
     _controller         = GetComponent <TopDownController>();
     _controller2D       = GetComponent <TopDownController2D>();
     _controller3D       = GetComponent <TopDownController3D>();
     _model              = _character.CharacterModel;
     _characterMovement  = GetComponent <CharacterMovement>();
     _spriteRenderer     = GetComponent <SpriteRenderer>();
     _health             = GetComponent <Health> ();
     _inputManager       = _character.LinkedInputManager;
     _state              = _character.CharacterState;
     _movement           = _character.MovementState;
     _condition          = _character.ConditionState;
     _abilityInitialized = true;
 }
Esempio n. 8
0
        /// <summary>
        /// Initialize this weapon.
        /// </summary>
        public virtual void Initialization()
        {
            Flipped         = false;
            _spriteRenderer = this.gameObject.GetComponent <SpriteRenderer>();
            _comboWeapon    = this.gameObject.GetComponent <ComboWeapon>();

            WeaponState = new MMStateMachine <WeaponStates>(gameObject, true);
            WeaponState.ChangeState(WeaponStates.WeaponIdle);
            WeaponAmmo          = GetComponent <WeaponAmmo>();
            _animatorParameters = new List <List <int> >();
            _aimableWeapon      = GetComponent <WeaponAim>();
            InitializeAnimatorParameters();
            if (WeaponAmmo == null)
            {
                CurrentAmmoLoaded = MagazineSize;
            }
            InitializeFeedbacks();
        }
Esempio n. 9
0
        protected virtual void Initialization()
        {
            Energy = 100f;
            Application.targetFrameRate = TargetFrameRate;
            GameState = new MMStateMachine <GameStates> (gameObject, true);
            GUIManager.Instance.FaderOn(false, 1f, false);
            GUIManager.Instance.SetStartScreen(true);

            Enemies = new List <AgentController> ();
            AIs     = GameObject.FindGameObjectsWithTag("AI");
            for (int i = 0; i < AIs.Length; i++)
            {
                Enemies.Add(AIs [i].GetComponent <AgentController> ());
            }
            Agents = FindObjectsOfType <AgentController> ();
            for (int i = 0; i < Agents.Length; i++)
            {
                Agents [i].gameObject.GetComponentNoAlloc <Animator> ().SetBool("StartScreen", true);
            }
            SetCamera(1);
        }
Esempio n. 10
0
        /// <summary>
        /// Gets and stores input manager, camera and components
        /// </summary>
        protected virtual void Initialization()
        {
            // we initialize our state machines
            MovementState  = new MMStateMachine <CharacterStates.MovementStates>(gameObject, SendStateChangeEvents);
            ConditionState = new MMStateMachine <CharacterStates.CharacterConditions>(gameObject, SendStateChangeEvents);

            if (InitialFacingDirection == FacingDirections.Left)
            {
                IsFacingRight = false;
            }
            else
            {
                IsFacingRight = true;
            }

            // we get the current input manager
            SetInputManager();
            // we get the main camera
            if (Camera.main == null)
            {
                return;
            }
            SceneCamera = Camera.main.GetComponent <CameraController>();
            // we store our components for further use
            CharacterState      = new CharacterStates();
            _spriteRenderer     = GetComponent <SpriteRenderer>();
            _controller         = GetComponent <CorgiController>();
            _characterAbilities = GetComponents <CharacterAbility>();
            _aiBrain            = GetComponent <AIBrain>();
            _health             = GetComponent <Health> ();
            _damageOnTouch      = GetComponent <DamageOnTouch>();
            CanFlip             = true;
            AssignAnimator();

            _originalGravity = _controller.Parameters.Gravity;

            ForceSpawnDirection();
        }
Esempio n. 11
0
        // STATE MACHINE ------------------------------------------------------------------------------------------------------------------------

        protected virtual void Initialization()
        {
            Application.targetFrameRate = TargetFrameRate;
            GameState = new MMStateMachine <GameStates>(gameObject, true);
            GUIManager.Instance.FaderOn(false, 1f, false);

            for (int i = 0; i < Levels.Length; i++)
            {
                Levels[i].SetActive(false);
            }
            Levels[(CurrentLevel % 3)].SetActive(true);

            if (CurrentLevel == 1)
            {
                //GameState.ChangeState(GameStates.GameInProgress); //TODO REMOVE
                GUIManager.Instance.SetStartScreen(true);
                GUIManager.Instance.NoSpaceLeftWarning(false);
                GUIManager.Instance.Congratulations(false);
            }
            else
            {
                StartGame();
            }
        }
Esempio n. 12
0
 public override void Init(Character c)
 {
     base.Init(c);
     state = new MMStateMachine <PlayerState>(gameObject, false);
 }