Пример #1
0
    private void ActivateSelectedCommand()
    {
        activePlayer = playerUnitsReadyToSelectCommand.Dequeue();

        // Fill out the command with the current targets,
        // and send it back through the actor so that actor can update state.
        foreach (ActorCombatController target in currentTargets)
        {
            selectedCommand.AddTarget(target);
        }
        activePlayer.RegisterCommand(selectedCommand);

        // Mark selection and active player as null so we can move to next player.
        selectedCommand = null;
        activePlayer    = null;
        currentTargets.Clear();
    }
Пример #2
0
 public void DisplayInstructions()
 {
     if (player == null)
     {
         player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCombatController>();
     }
     instructionsPanel.SetActive(!instructionsPanel.activeInHierarchy);
     if (instructionsPanel.activeInHierarchy)
     {
         Time.timeScale = 0;
         player.enabled = false;
     }
     else
     {
         Time.timeScale = 1;
         player.enabled = true;
     }
 }
Пример #3
0
    private PlayerCombatController NextPlayer(TargetChangeDirection change)
    {
        float currentY = lastSinglePlayerCombatTarget.transform.position.y;
        float ny       = currentY;
        PlayerCombatController nextPlayer = null;

        switch (change)
        {
        case TargetChangeDirection.Up:
            foreach (PlayerCombatController player in battleController.playerActors)
            {
                float ey = player.transform.position.y;
                if (ey > currentY && (ey > ny || ny == currentY))
                {
                    ny         = ey;
                    nextPlayer = player;
                }
            }
            if (nextPlayer == null)
            {
                nextPlayer = BottomPlayer();
            }
            return(nextPlayer);

        case TargetChangeDirection.Down:
            foreach (PlayerCombatController player in battleController.playerActors)
            {
                float ey = player.transform.position.y;
                if (ey < currentY && (ey < ny || ny == currentY))
                {
                    ny         = ey;
                    nextPlayer = player;
                }
            }
            if (nextPlayer == null)
            {
                nextPlayer = TopPlayer();
            }
            return(nextPlayer);

        default:
            throw new System.ArgumentException("Unhandled switch case [" + change.ToString() + "]");
        }
    }
Пример #4
0
    // Update is called once per frame
    void Update()
    {
        CheckFinished();

        activePlayer = null;
        if (playerUnitsReadyToSelectCommand.Count > 0)
        {
            activePlayer = playerUnitsReadyToSelectCommand.Peek();
        }

        if (activePlayer != null)
        {
            if (selectedCommand != null)
            {
                ManageTargetSelectionInput();

                // Update targets based on current command targets identified
                UpdateTargetSelection();

                if (Input.GetButtonDown("UseAction"))
                {
                    // Command is selected; player is done with prep and can be dequeued.
                    ActivateSelectedCommand();
                }
            }
            else
            {
                if (Input.GetButtonDown("Cancel"))
                {
                    // Dequeue the top ready player and put them at the back of the line.
                    playerUnitsReadyToSelectCommand.Enqueue(playerUnitsReadyToSelectCommand.Dequeue());
                }
            }
        }

        foreach (ActorCombatController actor in fingerPointers.Keys)
        {
            fingerPointers[actor].SetActive(false);
        }
        foreach (ActorCombatController actor in currentTargets)
        {
            fingerPointers[actor].SetActive(true);
        }
    }
Пример #5
0
    private void LoadPlayer(int id, PlayerClass playerClass)
    {
        switch (playerClass)
        {
        case PlayerClass.Knight:
        {
            Player.CreatePlayer(id, 3, 1, 1, 1);
            PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("KnightE"));
            explorationController.Initialize(id);
            playerExplorationControllers[id] = explorationController;
            PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("KnightC"));
            combatController.Initialize(id);
            playerCombatControllers[id] = combatController;
        }
        break;

        case PlayerClass.Heavy:
        {
            Player.CreatePlayer(id, 6, 2, 1, 1);
            PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("HeavyE"));
            explorationController.Initialize(id);
            playerExplorationControllers[id] = explorationController;
            PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("HeavyC"));
            combatController.Initialize(id);
            playerCombatControllers[id] = combatController;
        }
        break;

        case PlayerClass.Nurse:
        {
            Player.CreatePlayer(id, 2, 1, 1, 1);
            PlayerExplorationController explorationController = Instantiate(ResourceUtility.GetPrefab <PlayerExplorationController>("NurseE"));
            explorationController.Initialize(id);
            playerExplorationControllers[id] = explorationController;
            PlayerCombatController combatController = Instantiate(ResourceUtility.GetPrefab <PlayerCombatController>("NurseC"));
            combatController.Initialize(id);
            playerCombatControllers[id] = combatController;
        }
        break;
        }
    }
Пример #6
0
    private void Awake()
    {
        movementController = GetComponent <PlayerMovementController>();
        combatController   = GetComponent <PlayerCombatController>();
        rigidBody          = GetComponent <Rigidbody>();

        // Input setup
        controls = new InputMaster();
        controls.Player.Enable();

        // Movement
        controls.Player.Steering.performed          += ctx => Steering(ctx.ReadValue <float>());
        controls.Player.AcceleratePress.performed   += _ => accelInput = 1.0f;
        controls.Player.AccelerateRelease.performed += _ => accelInput = 0.0f;
        controls.Player.JumpPress.performed         += _ => { movementController.Jump(moveInput); movementController.UpdateJumpInput(true); };
        controls.Player.JumpRelease.performed       += _ => movementController.UpdateJumpInput(false);
        controls.Player.BrakePress.performed        += _ => movementController.brakingState.Active = true;
        controls.Player.BrakeRelease.performed      += _ => movementController.brakingState.Active = false;
        controls.Player.DriftPress.performed        += _ => movementController.driftingState.Active = true;
        controls.Player.DriftRelease.performed      += _ => movementController.driftingState.Active = false;
        controls.Player.Grind.performed             += _ => { movementController.grindingState.TryGrind(); };
        controls.Player.BoostPress.performed        += _ => boostInput = 1.0f;
        controls.Player.BoostRelease.performed      += _ => boostInput = 0.0f;

        controls.Player.Movement.performed += ctx => moveInput = ctx.ReadValue <Vector2>();

        // Combat
        controls.Player.Attack.performed += _ => combatController.BasicAttack();

        // Interact
        controls.Player.Interact.performed      += _ => npc.Interact();
        controls.Conversation.Accept.performed  += _ => npc.Accept();
        controls.Conversation.Decline.performed += _ => npc.Decline();

        // Cursor
        //Cursor.visible = false;
        //Cursor.lockState = CursorLockMode.Locked;
    }
Пример #7
0
    public void Trigger(PlayerCombatController playerController)
    {
        if (!triggered && gameObject.activeInHierarchy)
        {
            gameObject.SetActive(false);
            triggered = true;



            switch (type)
            {
            case LootType.Weapon:
                WeaponManager._instance.equipWeapon(playerController, (WeaponType)id, level);
                break;


            case LootType.Potion:
                playerController.Avatar.ApplyHealing(DataTableManager.singleton.GetItemData(id).Attributes);
                break;
            }

            Destroy(gameObject);
        }
    }
Пример #8
0
    public void equipWeapon(PlayerCombatController player, WeaponType type, int level)
    {
        var defaultPos = Weapons[(int)type].transform.localPosition;
        var defaultRot = Weapons[(int)type].transform.rotation;
        var temp       = Instantiate(Weapons[(int)type]);

        temp.transform.parent        = player.weaponHolder;
        temp.transform.localPosition = defaultPos;
        temp.transform.rotation      = defaultRot;
        if (player.transform.localScale.x < 0)
        {
            if (temp.transform.eulerAngles.z == 0)
            {
                temp.transform.eulerAngles = new Vector3(0, 180, 0);
            }
            else
            {
                temp.transform.eulerAngles = new Vector3(0, 0, 360 - temp.transform.eulerAngles.z);
            }
        }

        temp.GetComponent <Weapon>().type = type;
        temp.GetComponent <Weapon>().AcquireWeapon(level);
    }
Пример #9
0
 private void Awake()
 {
     CameraCenterController = cam.GetComponent <CameraCenterController>();
     CombatUIManager        = combatUI.GetComponent <CombatUIManager>();
     PlayerCombatController = player.GetComponent <PlayerCombatController>();
 }
Пример #10
0
 private void Start()
 {
     panel.SetActive(false);
     playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>();
     PC           = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCombatController>();
 }
Пример #11
0
 public void PlayerUnitReadyToSelectCommand(PlayerCombatController playerUnit)
 {
     playerUnitsReadyToSelectCommand.Enqueue(playerUnit);
 }
Пример #12
0
 private void Start()
 {
     anim   = GetComponent <Animator>();
     player = transform.parent.parent.parent.GetComponent <PlayerCombatController>();
 }
Пример #13
0
 public CombatState(PlayerMovementController controller, PlayerCombatController combatController)
 {
     _controller       = controller;
     _combatController = combatController;
     _exitWhenFinished = false;
 }
Пример #14
0
 public void UpdateHealthDisplay(PlayerCombatController cmbtCtrl)
 {
     currentStatsTextElement.text =
         $"Health: {cmbtCtrl.CurrentHealth.ToString("0")}/{cmbtCtrl.MaxHealth.ToString("0")}\n" +
         $"Consumable Charges: {cmbtCtrl.CurrentConsumableCharges}/{cmbtCtrl.MaxConsumableCharges}";
 }
Пример #15
0
 public override void Initialize(params object[] args)
 {
     player = (PlayerCombatController)args[0];
 }
Пример #16
0
 private void Awake()
 {
     // Gets the player PlayerMovementController & PlayerCombatController
     m_movementController = GetComponent <PlayerMovementController>();
     m_combatController   = GetComponent <PlayerCombatController>();
 }
Пример #17
0
 public IdleState(PlayerCombatController controller)
 {
     _controller = controller;
 }
 public void AttackPlayer(PlayerCombatController target)
 {
     target.TakeDamage(AttackPoints);
     Debug.Log(this + " says: \"attack!\"");
 }
Пример #19
0
    private void Awake()
    {
        controller = GetComponent<CharacterController2D>();
        combatController = GetComponent<PlayerCombatController>();
		animator = GetComponent<Animator>();
    }
Пример #20
0
 public override void Refresh(params object[] args)
 {
     player = (PlayerCombatController)args[0];
 }
 // Start is called before the first frame update
 void Start()
 {
     playerCombatController = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCombatController>();
     cooldownTime           = playerCombatController.GetRangedAttackCooldown();
     cooldownFinished       = true;
 }
Пример #22
0
 // Use this for initialization
 void Start()
 {
     playerPos = transform.parent.transform;
     player    = transform.parent.parent.GetComponent <PlayerCombatController> ();
 }
Пример #23
0
 private void Awake()
 {
     combatController = GetComponent <PlayerCombatController>();
 }
Пример #24
0
    private void ManageTargetSelectionInput()
    {
        switch (selectedCommand.currentTargetSelection)
        {
        case CommandBase.Target.ALL_ALLIES:
            //  Left: previous target option
            //  Right/Up/Down: Nothing
            if (Input.GetButtonDown("MoveLeft"))
            {
                selectedCommand.currentTargetIndex--;
            }
            break;

        case CommandBase.Target.SELECTED_ALLY:
            //  Left: previous target option
            //  Right: next target option
            //  Up/Down: Toggle targets
            if (Input.GetButtonDown("MoveLeft"))
            {
                selectedCommand.currentTargetIndex--;
            }
            if (Input.GetButtonDown("MoveRight"))
            {
                selectedCommand.currentTargetIndex++;
            }
            if (Input.GetButtonDown("MoveUp"))
            {
                lastSinglePlayerCombatTarget = NextPlayer(TargetChangeDirection.Up);
            }
            if (Input.GetButtonDown("MoveDown"))
            {
                lastSinglePlayerCombatTarget = NextPlayer(TargetChangeDirection.Down);
            }
            break;

        case CommandBase.Target.SELF:
            //  As SELECTED_ALLY but Up/Down does nothing
            if (Input.GetButtonDown("MoveLeft"))
            {
                selectedCommand.currentTargetIndex--;
            }
            if (Input.GetButtonDown("MoveRight"))
            {
                selectedCommand.currentTargetIndex++;
            }
            break;

        case CommandBase.Target.SELECTED_ENEMY:
            //  Left: Previous single enemy target if one available, or previous target option otherwise
            //  Right: Next single enemy target if one availalbe, or next target option otherwise
            //  Up/Down: Vertical toggle on targets (wraparound possible)
            if (Input.GetButtonDown("MoveLeft"))
            {
                EnemyCombatController nextEnemy = NextEnemy(TargetChangeDirection.Left);
                if (nextEnemy == null)
                {
                    selectedCommand.currentTargetIndex--;
                }
                else
                {
                    lastSingleEnemyCombatTarget = nextEnemy;
                }
            }
            if (Input.GetButtonDown("MoveRight"))
            {
                EnemyCombatController nextEnemy = NextEnemy(TargetChangeDirection.Right);
                if (nextEnemy == null)
                {
                    selectedCommand.currentTargetIndex++;
                }
                else
                {
                    lastSingleEnemyCombatTarget = nextEnemy;
                }
            }
            if (Input.GetButtonDown("MoveUp"))
            {
                lastSingleEnemyCombatTarget = NextEnemy(TargetChangeDirection.Up);
            }
            if (Input.GetButtonDown("MoveDown"))
            {
                lastSingleEnemyCombatTarget = NextEnemy(TargetChangeDirection.Down);
            }
            break;

        case CommandBase.Target.ALL_ENEMIES:
            //  Right: Next target option
            //  Left/Up/Down: Nothing
            if (Input.GetButtonDown("MoveRight"))
            {
                selectedCommand.currentTargetIndex++;
            }
            break;

        case CommandBase.Target.RANDOM_ENEMY:
            // No input to handle
            //  This should never apply here; if RANDOM_ENEMY is in the list,
            //  it should be alone, and a random enemy should be selected instead
            break;
        }
    }
Пример #25
0
 private void Start()
 {
     playerStats  = GetComponent <PlayerStats>();
     playerCombat = transform.GetComponent <PlayerCombatController>();
 }
Пример #26
0
 protected virtual void Awake()
 {
     WalkingSpeed       = 4;
     MovementController = new PlayerMovementController(gameObject, WalkingSpeed, GroundCheck);
     CombatController   = new PlayerCombatController(gameObject, MaxLife);
 }
Пример #27
0
 private void Start()
 {
     combatController = GetComponent <PlayerCombatController>();
 }
Пример #28
0
 public SimpleAttackState(PlayerCombatController controller)
 {
     _controller   = controller;
     _currentTime  = 0;
     _enemyHitList = new List <EnemyBlackboard>();
 }
Пример #29
0
 private void Start()
 {
     player = gameObject.GetComponentInParent <PlayerCombatController>();
 }
Пример #30
0
 private void Start()
 {
     _combat = GetComponent <PlayerCombatController>();
     _anim   = gameObject.GetComponentInChildren <Animator>();
 }