public void Start() { pointer = GetComponent <VRTK_Pointer>(); bezierRenderer = GetComponent <VRTK_BezierPointerRenderer>(); straightRenderer = GetComponent <VRTK_StraightPointerRenderer>(); attacker = PlayerController.GetComponent <PlayerAttacker>(); commander = PlayerController.GetComponent <PlayerCommander>(); digger = PlayerController.GetComponent <PlayerDigger>(); flyer = PlayerController.GetComponent <PlayerFlyer>(); grabber = PlayerController.GetComponent <PlayerGrabber>(); mover = PlayerController.GetComponent <PlayerMover>(); summoner = PlayerController.GetComponent <PlayerSummoner>(); mover.PointerRenderer = bezierRenderer; SetPointer(false); pointer.DestinationMarkerHover += (object marker, DestinationMarkerEventArgs args) => { destinationArgs = args; destination = args.destinationPosition; }; controllerEvents = GetComponent <VRTK_ControllerEvents>(); controllerEvents.TriggerPressed += OnTriggerPressed; controllerEvents.TriggerReleased += OnTriggerReleased; controllerEvents.TouchpadPressed += OnTouchpadPressed; controllerEvents.TouchpadReleased += OnTouchpadReleased; }
public void Update(GameTime gameTime, PlayerIndex playerIndex, PlayerCommander player, bool clampMouse) { #if WINDOWS //if game is not the current focus, then ignore all input devices. if (!FrameworkCore.isActive) { ClearAll(); return; } #endif try { lastPadState = gamePadState; gamePadState = GamePad.GetState(playerIndex, GamePadDeadZone.Circular); } catch { } #if WINDOWS if (pristineMouseInfo == null) { if (Mouse.GetState().LeftButton == ButtonState.Released && Mouse.GetState().RightButton == ButtonState.Released) { pristineMouseInfo = Mouse.GetState(); } } if (player == null || (player != null && player.mouseEnabled)) { lastKeyboardState = keyboardState; keyboardState = Keyboard.GetState(); UpdateMouseInfo(); if (mouseRightHeld) { ClampMouse(clampMouse); float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds / TimeSpan.FromMilliseconds(100).TotalMilliseconds); mouseCameraTimer = MathHelper.Clamp(mouseCameraTimer + delta, 0, 1); if (mouseCameraTimer >= 1 && !MouseCameraMode) { MouseCameraMode = true; } } else if (MouseCameraMode || mouseCameraTimer > 0) { MouseCameraMode = false; mouseCameraTimer = 0; } } #endif }
public virtual void Draw(GameTime gameTime, Camera camera, PlayerCommander curPlayer) { if (hulks.Count <= 0) { return; } for (int i = 0; i < hulks.Count; i++) { if (!Helpers.IsHulk(hulks[i])) { continue; } Hulk item = (Hulk)hulks[i]; if (!FrameworkCore.HideHud) { if (!FrameworkCore.level.isDemo) { Vector3 gridPos = item.Position; gridPos.Y = curPlayer.GridAltitude; Color lineColor = new Color(96, 96, 96, 160); //The rod line attached to asteroids/rubble/etc. FrameworkCore.lineRenderer.Draw(item.Position, gridPos, lineColor); Helpers.DrawDiamond(gridPos, .5f, lineColor); //BC 3-28-2019 New addition to 2019 build. //Helpers.DrawDiamond(gridPos, item.BSphere.Radius, lineColor); //FrameworkCore.pointRenderer.Draw(gridPos, 6, new Color(0, 0, 0, 128)); //FrameworkCore.pointRenderer.Draw(gridPos, 4, lineColor); } } //FrameworkCore.discRenderer.Draw(1.5f, gridPos, lineColor); Matrix worldMatrix = Matrix.CreateFromQuaternion(item.Rotation); worldMatrix.Translation = item.Position; FrameworkCore.meshRenderer.Draw(item.modelMesh, worldMatrix, camera); if (FrameworkCore.debugMode) { for (int k = 0; k < item.CollisionSpheres.Length; k++) { BoundingSphere sphere = item.CollisionSpheres[k].sphere; FrameworkCore.sphereRenderer.Draw(sphere, Matrix.Identity, Color.LimeGreen); } } } }
/// <summary> /// Retrieves the unwrapped player commander from the scene. /// </summary> /// <returns>The tile grid instance (with no notion of monobehaviour).</returns> public PlayerCommander GetInstance(TileGrid grid) { // Create the new commander and add it to the grid. PlayerCommander commander = new PlayerCommander(teamID, grid, controller.GetInstance(grid), buttonsListener); grid.Commanders.Add(commander); // Bind the pause curtain to the new player. // TODO this approach does not support multiple human players. pauseCurtain.DrivingCommander = commander; // Destroy this script's Monobehaviour baggage, // and return the lightweight instance. Destroy(this); return(commander); }
void Start() { if (instance) { Destroy(gameObject); } else { instance = this; } unit1 = Instantiate(cursorPrefab, transform.position + new Vector3(-0.5f, 0.0f), Quaternion.identity); unit1.GetComponentInChildren <SpriteRenderer>().color = new Color(0.0f, 0.8f, 1.0f); unit2 = Instantiate(cursorPrefab, transform.position + new Vector3(0.5f, 0.0f), Quaternion.identity); unit2.GetComponentInChildren <SpriteRenderer>().color = new Color(1.0f, 0.68f, 0.0f); }
private void StartCampaign() { if (isLoadDone) { return; } isLoadDone = true; Deactivate(); if (Player2Joined) { PlayerCommander player2 = new PlayerCommander(player2Index, Faction.Blue.altColor, Faction.Blue.altColor); #if WINDOWS player2.mouseEnabled = FrameworkCore.options.p2UseMouse; #endif if (FrameworkCore.players.Count <= 1) { FrameworkCore.players.Add(player2); } //assign the name to player2. FrameworkCore.players[1].commanderName = player2Name; FrameworkCore.players[1].ShipColor = Faction.Blue.altColor; FrameworkCore.players[1].TeamColor = Faction.Blue.altColor; //give player 2 a ship. if (FrameworkCore.players[0].campaignShips[1] != null) { FrameworkCore.players[0].campaignShips[1].childShip = true; } } FrameworkCore.level.ClearAll(); FrameworkCore.worldMap = new WorldMap(); FrameworkCore.gameState = GameState.WorldMap; FrameworkCore.worldMap.EnterMap(); }
public static AudioListener nearestListener(Vector3 soundPos) { if (players.Count <= 1) { return(players[0].Listener); } float closestDist = float.MaxValue; PlayerCommander closestPlayer = null; for (int i = 0; i < players.Count; i++) { float curDist = Helpers.FastDistanceCheck(players[i].position, soundPos); if (curDist < closestDist) { closestDist = curDist; closestPlayer = players[i]; } } return(closestPlayer.Listener); }
void Awake() { pc = GameObject.Find("PlayerCommander").GetComponent <PlayerCommander>(); rend = selectionIndicator.GetComponent <Renderer> (); colStart = rend.material.color; }
public CommandMenu(Game game, PlayerCommander owner) : base(game, owner) { }
public Menu(Game game, PlayerCommander owner) { this.owner = owner; }
public override void Update(GameTime gameTime, InputManager inputManager) { if (IsLoading) { if (loadTransition >= 1 && !hasLoadedLevel) { hasLoadedLevel = true; StartSkirmish(gameTime); Deactivate(); } float delta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds / TimeSpan.FromMilliseconds(400).TotalMilliseconds); loadTransition = MathHelper.Clamp(loadTransition + delta, 0, 1); return; } if (Transition >= 1) { if (inputManager.buttonStartPressed && !IsLoading) { IsLoading = true; } for (int i = 0; i < 4; i++) { PlayerIndex index = PlayerIndex.One; if (i == 0) { index = PlayerIndex.One; } else if (i == 1) { index = PlayerIndex.Two; } else if (i == 2) { index = PlayerIndex.Three; } else { index = PlayerIndex.Four; } if (FrameworkCore.MenuInputs[i].buttonAPressed) { if (index == FrameworkCore.ControllingPlayer) { continue; } //another player wants to join. if (getFirstUnoccupiedSlot() == null) { return; } //we need to add another player to the player list. if (FrameworkCore.players.Count <= 1) { PlayerCommander player2 = new PlayerCommander(index, Color.White, Color.White); #if WINDOWS player2.mouseEnabled = FrameworkCore.options.p2UseMouse; #endif if (FrameworkCore.players.Count <= 1) { FrameworkCore.players.Add(player2); } player2.commanderName = Helpers.GenerateName("Gamertag"); } bool player2HasJoined = false; foreach (MenuItem item in menuItems) { if (item.commander == FrameworkCore.players[1]) { player2HasJoined = true; break; } } if (!player2HasJoined) { Player2Join(); } } } //do the fleet setup logic. if (inputManager.sysMenuRight) { if (selectedItem.commander == null) { return; } selectedItem.shipArraySelection = (int)MathHelper.Clamp( selectedItem.shipArraySelection + 1, -1, selectedItem.shipArray.Length - 1); } else if (inputManager.sysMenuLeft) { if (selectedItem.commander == null) { return; } selectedItem.shipArraySelection = (int)MathHelper.Clamp( selectedItem.shipArraySelection - 1, -1, selectedItem.shipArray.Length - 1); } if (inputManager.buttonAPressed && selectedItem != null && selectedItem.shipArraySelection >= 0) { if (selectedItem.commander == null) { return; } //modify what ship is in this slot. OpenShipSelection(inputManager.playerIndex); } if (inputManager.buttonXPressed && selectedItem != null && selectedItem.shipArraySelection >= 0) { if (selectedItem.shipArray[selectedItem.shipArraySelection] != null) { FrameworkCore.PlayCue(sounds.click.beep); } selectedItem.shipArray[selectedItem.shipArraySelection] = null; } #if WINDOWS foreach (MenuItem item in menuItems) { Rectangle itemRect = new Rectangle( (int)item.position.X, (int)item.position.Y - 24, 512, 48); if (itemRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y)) { if (inputManager.mouseHasMoved) { selectedItem = item; item.shipArraySelection = -1; } if (inputManager.mouseLeftClick) { ActivateItem(inputManager); } } if (menuItems.IndexOf(item) <= 3) { //one of the player slots. if (item.commander == null) { continue; } for (int i = 0; i < item.shipArray.Length; i++) { Rectangle shipRect = new Rectangle( (int)item.position.X + sprite.vistaBox.Width + 8 + (i * 96), (int)item.position.Y - 32, 96, 64); if (shipRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y)) { selectedItem = item; item.shipArraySelection = i; if (inputManager.kbDelPressed) { if (selectedItem != null) { if (selectedItem.shipArray[item.shipArraySelection] != null) { FrameworkCore.PlayCue(sounds.click.beep); } selectedItem.shipArray[item.shipArraySelection] = null; } } if (inputManager.mouseLeftClick) { OpenShipSelection(FrameworkCore.ControllingPlayer); } } } } } #endif } //This is an ugly hack! We need a short period of time we ignore the inputstates // because the player2join buttonpress is interfering with standard buttonpresses. if (player2JoinTimer > 0) { player2JoinTimer -= (int)gameTime.ElapsedGameTime.TotalMilliseconds; return; } base.Update(gameTime, inputManager); }
private void SlotLogic(int slotNumber, PlayerCommander player) { //let player2 remove himself. if (FrameworkCore.players.Count >= 2) { //player2 clicked himself. if (menuItems[slotNumber].commander == player && player == FrameworkCore.players[1]) { SkirmishPopup popup = new SkirmishPopup(Owner); popup.screenPos = selectedItem.position + new Vector2(96, 16); popup.hideChildren = false; MenuItem item = new MenuItem(Resource.MenuSkirmishSlotClear); item.Selected += ClearSlot; item.GenericInt1 = slotNumber; popup.AddItem(item); item = new MenuItem(Resource.MenuCancel); item.Selected += closePopup; popup.AddItem(item); Owner.AddMenu(popup); return; } } if (menuItems[slotNumber].commander == player || menuItems[slotNumber].commander == FrameworkCore.players[0]) { //selected slot this player is already in. } else { SkirmishPopup popup = new SkirmishPopup(Owner); popup.screenPos = selectedItem.position + new Vector2(96, 16); popup.hideChildren = false; MenuItem item = null; //ADD COMPUTER. if (menuItems[slotNumber].commander == null) { item = new MenuItem(Resource.MenuSkirmishEasyAdd); item.Selected += AddAI; item.GenericInt1 = slotNumber; popup.AddItem(item); } //MOVE TO SLOT. if (menuItems[slotNumber].commander == null || (menuItems[slotNumber].commander != null && menuItems[slotNumber].commander.GetType() != typeof(PlayerCommander))) { item = new MenuItem(Resource.MenuSkirmishSlotMove); item.commander = player;//stuff data into this menu entry. item.GenericInt1 = slotNumber; item.Selected += MoveToSlot; popup.AddItem(item); } if (menuItems[slotNumber].commander != null) { if (menuItems[slotNumber].commander != FrameworkCore.players[0]) { item = new MenuItem(Resource.MenuSkirmishSlotClear); item.Selected += ClearSlot; item.GenericInt1 = slotNumber; popup.AddItem(item); } } item = new MenuItem(Resource.MenuCancel); item.Selected += closePopup; popup.AddItem(item); Owner.AddMenu(popup); } }
public PlaybackMenu(Game game, PlayerCommander owner) : base(game, owner) { buttonPositions = new Vector2[3]; }
void CalcFleetPoints() { //Placeholder values. commandLevel = PlayerCommander.GetLevel(); fleetPoints = commandLevel * 100; }
public virtual void Draw(GameTime gameTime, Camera camera, PlayerCommander curplayer) { }
public override void Draw(GameTime gameTime, Camera camera, PlayerCommander curPlayer) { }