Ejemplo n.º 1
0
    private void moveCharacterToTile(GameObject playerWhosTurnItIs, int tileID)
    {
        CharacterController         myCharacterController         = playerWhosTurnItIs.GetComponent <CharacterController>();
        CharacterMovementController myCharacterMovementController = playerWhosTurnItIs.GetComponent <CharacterMovementController>();

        if (myCharacterController.getCurrentActionPoints() < 2 && currentState == GameState.IN_COMBAT)
        {
            return;
        }

        List <Node> path      = new List <Node>();
        Node        savedNode = myTileController.getLastTraversalPath();

        while (savedNode != null)
        {
            if (savedNode.getDistanceFromStart() < myCharacterController.getMovementSpeed())
            {
                path.Insert(0, savedNode);
            }
            else
            {
                myTileController.getTileFromID(savedNode.getID()).GetComponent <Tile>().setCurrentState(Tile.TileState.NOT_SELECTED);
            }
            savedNode = savedNode.getPreviousNode();
        }

        if (path.Count >= 0)
        {
            myCharacterMovementController.setPath(path);
            if (currentState == GameState.IN_COMBAT)
            {
                myCharacterController.decrementActionPointsByMovement();
            }
        }
    }
 private void Awake()
 {
     m_MovementController = GetComponent <CharacterMovementController>();
     m_Input = GetComponent <CharacterInputBase>();
     m_GraphicsController = GetComponent <GraphicsController>();
     m_DefeatableBase     = GetComponent <DefeatableBase>();
 }
Ejemplo n.º 3
0
        public void Start()
        {
            effectGO = GameObject.Find("Effects");
            if (effectGO == null)
            {
                effectGO = new GameObject("Effects");
            }
            animator           = GetComponent <Animator>();
            movementController = GetComponent <CharacterMovementController>();
            camerascript       = GameObject.FindObjectOfType <Cam>();

            idleState             = new IdleState();
            preJumpIdleState      = new PreJumpIdleState();
            jumpStartIdleState    = new JumpStartIdleState();
            preJumpRunningState   = new PreJumpRunningState();
            jumpStartRunningState = new JumpStartRunningState();
            fallingState          = new FallingState();
            landIdleState         = new LandIdleState();
            landRunningState      = new LandRunningState();
            landRollingState      = new LandRollingState();
            runningState          = new RunningState();
            stoppingState         = new StoppingState();
            duckingState          = new DuckingState();
            duckingUpState        = new DuckingUpState();
            climbingState         = new ClimbingState();
            attackingHeavyState   = new AttackingHeavyState();
            attackingCombo1State  = new AttackingCombo1State();
            attackingCombo2State  = new AttackingCombo2State();

            currentState      = idleState;
            currentDirectionX = 1;
        }
Ejemplo n.º 4
0
    void InitIfNeeded()
    {
        if (!_characterModel)
        {
            _characterModel = GetComponentInChildren <CharacterModel>();
        }

        if (!_characterHealthController)
        {
            _characterHealthController = GetComponentInChildren <CharacterHealthController>();
            _characterHealthController.onHealthChanged += (float oldHealth, float health) =>
            {
                if (health < oldHealth)
                {
                    if (isChargingSpirit)
                    {
                        CancelSpiritCharge();
                    }
                }
            };
        }

        if (!_characterInputController)
        {
            _characterInputController = GetComponentInChildren <CharacterInputController>();
        }

        if (!_characterMovementController)
        {
            _characterMovementController = GetComponentInChildren <CharacterMovementController>();
        }
    }
Ejemplo n.º 5
0
        private void MoveX(PlayerStateMachine stateMachine, CharacterMovementController playerController, float accelerationTime, float moveFactor)
        {
            float directionX = Input.GetAxisRaw("Horizontal");

            stateMachine.FlipSprite(directionX);
            playerController.OnMoving(directionX, accelerationTime, moveFactor);
        }
Ejemplo n.º 6
0
    public bool highlightTraversalPathFromCharacterToTile(GameObject character, int tileIndex)
    {
        if (character == null || tileIndex < 0)
        {
            return(false);
        }
        resetLastPath();

        CharacterController         myCharacterController         = character.GetComponent <CharacterController>();
        CharacterMovementController myCharacterMovementController = character.GetComponent <CharacterMovementController>();

        Node[] traversalMap = myCharacterMovementController.getTraversalMap();
        if (traversalMap != null)
        {
            Node selectedNode = traversalMap[tileIndex];
            savedNode = traversalMap[tileIndex];
            while (selectedNode != null)
            {
                int distanceFromStart = selectedNode.getDistanceFromStart();
                if (distanceFromStart < myCharacterController.getMovementSpeed())
                {
                    getTileFromID(selectedNode.getID()).GetComponent <Tile>().setCurrentState(Tile.TileState.SELECTED_WITHIN_RANGE);
                }
                else
                {
                    getTileFromID(selectedNode.getID()).GetComponent <Tile>().setCurrentState(Tile.TileState.SELECTED_OUTSIDE_RANGE);
                }
                selectedNode = selectedNode.getPreviousNode();
            }
            return(true);
        }
        return(false);
    }
 private void Awake()
 {
     characterMovement  = GetComponent <CharacterMovementController>();
     characterAnimation = GetComponent <CharacterAnimationController>();
     characterCombat    = GetComponent <CharacterCombat>();
     health             = GetComponent <Health>();
     rigidBody2D        = GetComponent <Rigidbody2D>();
 }
Ejemplo n.º 8
0
 public void Move(PlayerStateMachine stateMachine, CharacterMovementController playerController)
 {
     if (initialRunJumpDirectionX != Input.GetAxisRaw("Horizontal"))
     {
         moveMultiplierAir = MIN_MOVE_FACTOR_AIR; // wieder initialisieren da Initialrichtung gewechselt
     }
     MoveXAirborne(stateMachine, playerController, moveMultiplierAir);
 }
 public OnTheMove(CharacterMovementController characterMovementController, Tile start, System.Action action)
     : base(characterMovementController)
 {
     _path = new List <Tile>()
     {
         start
     };
     act = action;
 }
Ejemplo n.º 10
0
    private void Awake()
    {
        mMovementController = GetComponent <CharacterMovementController>();
        mOverrideController = GetComponent <CharacterOverrideController>();
        mAbilityController  = GetComponent <CharacterAbilityController>();

        mFakePhysics = GetComponent <BSGFakePhysics>();
        mTriggerable = GetComponent <Triggerable>();
    }
Ejemplo n.º 11
0
 // Use this for initialization
 public virtual void Start()
 {
     stateMachineInterface = GetComponent <IStateMachine>();
     movementController    = GetComponent <CharacterMovementController>();
     spriteRenderer        = GetComponent <SpriteRenderer>();
     boxCollider           = GetComponent <BoxCollider2D>();
     health = GetComponent <HealthController>();
     health.RefreshDisplay();
 }
Ejemplo n.º 12
0
 void Start()
 {
     movementController = this.GetComponent <CharacterMovementController>();
     if (movementController != null)
     {
         movementController.jumpLengthInSeconds *= 3;
         movementController.jumpHeight          *= 6;
     }
     Invoke("EndPowerUp", lifeTime);
 }
Ejemplo n.º 13
0
 // Use this for initialization
 void Start()
 {
     _actorStates        = GetComponentInParent <ActorStates>();
     _moveController     = GetComponentInParent <CharacterMovementController>();
     inputManager        = GameObject.FindObjectOfType <InputManager>();
     cam                 = GetComponent <Camera>();
     rotAroundX          = transform.eulerAngles.x;
     rotAroundY          = transform.eulerAngles.y;
     rotAroundZ          = 0;
     _startLocalPosition = transform.localPosition;
     _currentPosition    = transform.position;
     StartCoroutine(StartDelay());
 }
        public void Start()
        {
            spriteRenderer     = GetComponent <SpriteRenderer>();
            animator           = GetComponent <Animator>();
            observerController = GetComponent <ObserverController>();
            movementController = GetComponent <CharacterMovementController>();

            currentState      = idleState;
            currentDirectionX = -1; // Enemies always initially face left

            if (!waypointLeft.Equals(Vector3.negativeInfinity) && !waypointRight.Equals(Vector3.negativeInfinity))
            {
                globalWaypointLeft  = waypointLeft + transform.position;
                globalWaypointRight = waypointRight + transform.position;

                waypointController = new WaypointController(globalWaypointLeft, globalWaypointRight);
            }
        }
Ejemplo n.º 15
0
    void OnCollisionEnter(Collision collision)
    {
        if (IsMoving && collisionTime + collisionTimeInterval < Time.time && collision.collider.CompareTag("Player"))
        {
            collisionTime = Time.time;

            currentPathSegment = null;
            animator.SetTrigger(AnimatorPropertyName.GetInstance().Movement2StopTrigger);
            CharacterMovementController collisionMovementController = collision.transform.GetComponent <CharacterMovementController> ();
            if (collisionMovementController.IsMoving)
            {
                StartCoroutine(RepathForCurrentTarget(transform.GetInstanceID() > collision.transform.GetInstanceID()));
            }
            else
            {
                StartCoroutine(RepathForCurrentTarget(true));
            }
        }
    }
 public override AbstractState HandleUpdate(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     if (animationHasStopped)
     {
         float directionX = Input.GetAxisRaw("Horizontal");
         if (directionX == 0)
         {
             return(PlayerStateMachine.idleState);
         }
         else
         {
             return(PlayerStateMachine.runningState);
         }
     }
     return(null);
 }
 public override void OnEnter(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     animationHasStopped = false;
     animator.SetBool(AnimPlayerParameters.STOPPING, true);
     stateMachine.InstantiateEffect(dustEffect);
 }
 public OnTheMove(CharacterMovementController characterMovementController, Tile start, System.Action action)
     : base(characterMovementController)
 {
     _path = new List<Tile>() {start};
     act = action;
 }
Ejemplo n.º 19
0
 public override AbstractState HandleUpdate(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     if (animationHasStopped)
     {
         return(PlayerStateMachine.idleState);
     }
     return(null);
 }
Ejemplo n.º 20
0
 void Start()
 {
     playerWeaponController = GetComponent<PlayerWeaponController>();
     playerAnimationController = GetComponent<PlayerAnimationController>();
     characterMovementController = GetComponent<CharacterMovementController>();
 }
 public override void OnExit(EnemyStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     animator.SetBool(AnimEnemyParameters.RUNNING, false);
 }
Ejemplo n.º 22
0
 public override void Use(CharacterMovementController characterMovementController)
 {
     characterMovementController.SetMovementSpeedBoost(GlobalVariables.GlobalVariablesInstance.SPEED_UP_MOVEMENT_BONUS, GlobalVariables.GlobalVariablesInstance.SPEED_UP_DURATION, gameObject);
 }
        public override AbstractState HandleUpdate(EnemyStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
        {
            AbstractState baseState = base.HandleUpdate(stateMachine, animator, playerController);

            if (baseState != null)
            {
                return(baseState);
            }

            if (!stateMachine.InAttackPosition())
            {
                //  Player out of reach
                return(stateMachine.runningState);
            }

            if (IsTimeToAttack(stateMachine))
            {
                return(stateMachine.attackingState);
            }

            return(null);
        }
Ejemplo n.º 24
0
 void Awake()
 {
     _physicsController  = new CharacterPhysicsController(this);
     _statsController    = new CharacterStatsController(this);
     _movementController = new CharacterMovementController(this);
 }
 public Idle(CharacterMovementController characterMovementController)
     : base(characterMovementController)
 {
 }
 public MovementState(CharacterMovementController characterMovementController)
 {
     CharacterMovementController = characterMovementController;
 }
Ejemplo n.º 27
0
 void Awake()
 {
     refrence = this;
 }
Ejemplo n.º 28
0
 // Use this for initialization
 void Start()
 {
     move = GetComponent <CharacterMovementController>();
     anim = GetComponent <CharacterAnimorController>();
 }
        public override AbstractState HandleUpdate(EnemyStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
        {
            AbstractState baseState = base.HandleUpdate(stateMachine, animator, playerController);

            if (baseState != null)
            {
                return(baseState);
            }

            float directionX = 0;

            if (stateMachine.currentDetection.distance < 0)
            {
                // Kein Gegner gefunden

                if (stateMachine.waypointController.HasWaypoints())
                {
                    // run towards waypoint
                    directionX = stateMachine.waypointController.GetDirectionXnextWaypoint(stateMachine.transform.position);
                }
                else
                {
                    return(stateMachine.idleState);
                }
            }
            else
            {
                // Gegen gefunden

                if (stateMachine.InAttackPosition())
                {
                    return(stateMachine.attackIdleState);
                }
                else
                {
                    // run towards player
                    directionX = (stateMachine.currentDetection.right ? 1 : -1);
                }
            }


            MoveX(stateMachine, playerController, directionX);

            return(null);
        }
Ejemplo n.º 30
0
 public override void OnEnter(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     doubleTabInAnim     = false;
     transitCombo        = false;
     animationHasStopped = false;
     animator.SetBool(AnimPlayerParameters.ATTACKING_COMBO1, true);
     SoundManager.PlaySFX(stateMachine.sounds.baseAttack);
 }
 public override void OnEnter(EnemyStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     base.OnEnter(stateMachine, animator, playerController);
     animator.SetBool(AnimEnemyParameters.RUNNING, true);
 }
Ejemplo n.º 32
0
        public override AbstractState HandleUpdate(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
        {
            if (!doubleTabInAnim)
            {
                doubleTabInAnim = stateMachine.inputController.IsDoubleTabAttack();
            }
            if (transitCombo)
            {
                if (doubleTabInAnim)
                {
                    return(PlayerStateMachine.attackingCombo2State);
                }
            }


            if (animationHasStopped)
            {
                return(PlayerStateMachine.idleState);
            }
            return(null);
        }
Ejemplo n.º 33
0
 public override void OnEnter(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     animationHasStopped = false;
     animator.SetBool(AnimPlayerParameters.ATTACKING_HEAVY, true);
     SoundManager.PlaySFX(stateMachine.sounds.heavyAttack);
 }
 public override void OnEnter(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     Debug.Log("In LAND RUNNING STATE!");
     animationHasStopped = false;
     animator.SetBool(AnimPlayerParameters.LAND_RUNNING, true);
     stateMachine.InstantiateEffect(dustEffect);
     MoveXGrounded(stateMachine, playerController);
 }
Ejemplo n.º 35
0
 public override void OnExit(PlayerStateMachine stateMachine, Animator animator, CharacterMovementController playerController)
 {
     animator.SetBool(AnimPlayerParameters.ATTACKING_HEAVY, false);
 }
 public OnTheMove(CharacterMovementController characterController, List<Tile> path)
     : base(characterController)
 {
     _path = path;
 }