// Start is called before the first frame update
 void Start()
 {
     _normalDeck  = Instantiate(_normalDeckRef);
     _specialDeck = Instantiate(_specialDeckRef);
     InitializeDecks();
     _movementBehaviour = GetComponent <Movement.GridMovementBehaviour>();
     _inputBehaviour    = GetComponent <Input.InputBehaviour>();
 }
示例#2
0
        /// <summary>
        /// Initializes base stats and members for the ability
        /// </summary>
        /// <param name="newOwner">The user of the ability</param>
        public virtual void Init(GameObject newOwner)
        {
            owner                   = newOwner;
            abilityData             = (ScriptableObjects.AbilityData)(Resources.Load("AbilityData/" + GetType().Name + "_Data"));
            currentActivationAmount = 0;
            _ownerMoveScript        = newOwner.GetComponent <Movement.GridMovementBehaviour>();
            ownerMoveset            = newOwner.GetComponent <MovesetBehaviour>();
            _ownerKnockBackScript   = newOwner.GetComponent <KnockbackBehaviour>();

            _canPlayAnimation = !abilityData.playAnimationManually;
        }
        /// <summary>
        /// Deploys one of the links
        /// </summary>
        private void FireLink()
        {
            //Creates copy of link prefab
            GameObject visualPrefab = MonoBehaviour.Instantiate(abilityData.visualPrefab, SpawnTransform.position, abilityData.visualPrefab.transform.rotation);

            //Get the movement script attached and add it to a list
            Movement.GridMovementBehaviour gridMovement = visualPrefab.GetComponent <Movement.GridMovementBehaviour>();
            gridMovement.Position = _ownerMoveScript.Position;
            gridMovement.Speed    = abilityData.GetCustomStatValue("Speed");
            _linkMoveScripts.Add(gridMovement);

            //Makes the link move until it runs into an obstacle
            for (int i = (int)_maxTravelDistance; i >= 0; i--)
            {
                Vector2 moveOffset = new Vector2(i, 0);
                if (gridMovement.MoveToPanel(_ownerMoveScript.CurrentPanel.Position + moveOffset * owner.transform.forward.x, false, GridScripts.GridAlignment.ANY))
                {
                    break;
                }
            }
        }
 // Start is called before the first frame update
 void Start()
 {
     _gridMovement = GetComponent <Movement.GridMovementBehaviour>();
     _moveset      = GetComponent <MovesetBehaviour>();
     _defense      = GetComponent <CharacterDefenseBehaviour>();
 }
示例#5
0
        // Start is called before the first frame update
        void Start()
        {
            InputDevice[] devices = { Keyboard.current, Mouse.current };
            //Spawn player 1
            _inputManager.JoinPlayer(0, 0, "Player", devices);
            _player1            = PlayerInput.GetPlayerByIndex(0);
            _player1.name       = _player1.name + "(P1)";
            _ringBarrierL.owner = _player1.name;

            //Get reference to player 1 components
            _p1Movement     = _player1.GetComponent <Movement.GridMovementBehaviour>();
            _p1StateManager = _player1.GetComponent <CharacterStateMachineBehaviour>();
            _p1Input        = _player1.GetComponent <Input.InputBehaviour>();
            _player1Moveset = _player1.GetComponent <MovesetBehaviour>();
            BlackBoardBehaviour.Instance.Player1 = _player1.gameObject;
            //Assign ID
            _p1Input.PlayerID = 0;

            //Initialize base UI stats
            _p1HealthBar.HealthComponent = _player1.GetComponent <Movement.KnockbackBehaviour>();
            _p1HealthBar.MaxValue        = 200;
            _abilityTextP1.MoveSet       = _player1Moveset;

            //Move player to spawn
            _p1Movement.MoveToPanel(_grid.LhsSpawnPanel, true, GridScripts.GridAlignment.ANY);
            _p1Movement.Alignment      = GridScripts.GridAlignment.LEFT;
            _player1.transform.forward = Vector3.right;

            //Spawns player 2 if the game mode is set to multiplayer
            if (_mode == GameMode.MULTIPLAYER)
            {
                //Spawn player 2
                _inputManager.JoinPlayer(1, 1, "Player", InputSystem.devices[3]);
                _player2                             = PlayerInput.GetPlayerByIndex(1);
                _player2.name                        = _player2.name + "(P2)";
                _ringBarrierR.owner                  = _player2.name;
                _player2.transform.forward           = Vector3.left;
                BlackBoardBehaviour.Instance.Player2 = _player2.gameObject;
                //Get reference to player 2 components
                _p2Movement     = _player2.GetComponent <Movement.GridMovementBehaviour>();
                _p2StateManager = _player2.GetComponent <CharacterStateMachineBehaviour>();
                _p2Input        = _player2.GetComponent <Input.InputBehaviour>();
                _player2Moveset = _player2.GetComponent <MovesetBehaviour>();

                //Initialize base UI stats
                _p2HealthBar.HealthComponent = _player2.GetComponent <Movement.KnockbackBehaviour>();
                _p2HealthBar.MaxValue        = 200;
                _abilityTextP2.MoveSet       = _player2Moveset;

                //Move player to spawn
                _p2Input.PlayerID = 1;
                _p2Movement.MoveToPanel(_grid.RhsSpawnPanel, true, GridScripts.GridAlignment.ANY);
                _p2Movement.Alignment = GridScripts.GridAlignment.RIGHT;
                _grid.AssignOwners(_player1.name, _player2.name);
                return;
            }
            else if (_mode == GameMode.PRACTICE)
            {
                _inputManager.playerPrefab = _dummy.gameObject;

                _cpu                   = Instantiate(_inputManager.playerPrefab);
                _cpu.name              = _inputManager.playerPrefab.name + "(Dummy)";
                _ringBarrierR.owner    = _cpu.name;
                _cpu.transform.forward = Vector3.left;
                BlackBoardBehaviour.Instance.Player2 = _cpu.gameObject;
                //Get reference to player 2 components
                _p2Movement     = _cpu.GetComponent <Movement.GridMovementBehaviour>();
                _p2StateManager = _cpu.GetComponent <CharacterStateMachineBehaviour>();
                _player2Moveset = _cpu.GetComponent <MovesetBehaviour>();

                //Initialize base UI stats
                _p2HealthBar.HealthComponent = _cpu.GetComponent <Movement.KnockbackBehaviour>();
                _p2HealthBar.MaxValue        = 200;
                _abilityTextP2.MoveSet       = _player2Moveset;

                //Find spawn point for dummy
                GridScripts.PanelBehaviour spawnPanel = null;
                if (_grid.GetPanel(_dummySpawnLocation, out spawnPanel, false))
                {
                    _p2Movement.MoveToPanel(spawnPanel, true, GridScripts.GridAlignment.ANY);
                }
                else
                {
                    Debug.LogError("Invalid spawn point for dummy. Spawn was " + _dummySpawnLocation);
                }

                _p2Movement.Alignment = GridScripts.GridAlignment.RIGHT;
                _grid.AssignOwners(_player1.name, _cpu.name);
                return;
            }

            _grid.AssignOwners(_player1.name);
        }