void FixedUpdate()
    {
        ///stops baha touching our velocities
        actor.fixedVelocityUpdate = true;
        if (rb == null)
        {
            Debug.LogError("Rigid body is null on object " + gameObject.name);
        }
        if (rb.isKinematic == false)
        {
            rb.isKinematic = true;
            Debug.Log("Rigidbody was not kinematic on " + gameObject.name);
        }

        if (kplane != null) // yes this can be null on objects that arent airplanes
        {
            if (kplane.enabled == true)
            {
                kplane.enabled = false;
                Debug.Log("Disabled kplane again on " + gameObject.name);
            }
        }
        if (playerWeRepresent == null)
        {
            int playerID = PlayerManager.FindPlayerIDFromNetworkUID(networkUID);                                               //get the ping of the player we represent
            if (playerID == -1)
            {                                                                                                                  //we are not a player, get the ping from the host
                playerID = PlayerManager.FindPlayerIDFromNetworkUID(PlayerManager.GetPlayerUIDFromCSteamID(Networker.hostID)); //getting the host
            }
            if (playerID != -1)                                                                                                //couldnt find host latency, that sucks
            {
                playerWeRepresent = PlayerManager.players[playerID];
            }
        }
        if (playerWeRepresent != null)
        {
            //delta time needs to be added to latency as this runs after packet has arrived for a while
            latency = playerWeRepresent.ping + Time.fixedDeltaTime;
        }

        globalTargetPosition += new Vector3D(targetVelocity * Time.fixedDeltaTime);
        localTargetPosition   = VTMapManager.GlobalToWorldPoint(globalTargetPosition);

        Quaternion quatVel         = Quaternion.Euler(targetRotationVelocity * Time.fixedDeltaTime);
        Quaternion currentRotation = transform.rotation;

        currentRotation *= quatVel;
        targetRotation  *= quatVel;

        rb.velocity = targetVelocity + (localTargetPosition - transform.position) / smoothingTime;
        //actor.SetCustomVelocity(Vector3.Lerp(actor.velocity, targetVelocity + (localTargetPosition - transform.position) / smoothingTime, Time.fixedDeltaTime / velSmoothingTime));
        actor.SetCustomVelocity(rb.velocity);

        rb.MovePosition(transform.position + targetVelocity * Time.fixedDeltaTime + ((localTargetPosition - transform.position) * Time.fixedDeltaTime) / smoothingTime);
        Quaternion quat = Quaternion.Slerp(currentRotation, targetRotation, Time.fixedDeltaTime / rotSmoothingTime);

        rb.MoveRotation(quat.normalized);
    }
Ejemplo n.º 2
0
 public static void processMovementInput(PlayerManager.Player player, ref float horizontal, ref float vertical)
 {
     if (player == PlayerManager.Player.player1)
     {
         horizontal = Input.GetAxisRaw("Horizontal_1");
         vertical   = Input.GetAxisRaw("Vertical_1");
         InputManager.rotateMovement(ref horizontal, ref vertical);
     }
     else if (player == PlayerManager.Player.player2)
     {
         horizontal = Input.GetAxisRaw("Horizontal_2");
         vertical   = Input.GetAxisRaw("Vertical_2");
         InputManager.rotateMovement(ref horizontal, ref vertical);
     }
 }
Ejemplo n.º 3
0
 void Update()
 {
     if (playerHero.isDead)
     {
         if (respawning == false)
         {
             PlayerManager.Player player = PlayerManager.instance.players[playerHero.playerOwner];
             if (player.livesRemaining > 0)
             {
                 player.livesRemaining--;
                 StartCoroutine(_respawnPlayer());
             }
             else
             {
                 EndGame();
             }
         }
     }
 }
Ejemplo n.º 4
0
    public static float verticalSelection(PlayerManager.Player player)
    {
        if (player == PlayerManager.Player.none)
        {
            return(0);
        }

        float vertical = 0;

        if (player == PlayerManager.Player.player1)
        {
            vertical = Input.GetAxisRaw("Vertical_1");
        }
        else if (player == PlayerManager.Player.player2)
        {
            vertical = Input.GetAxisRaw("Vertical_2");
        }

        return(instance.updateVertAxisUse(vertical));
    }
Ejemplo n.º 5
0
    // Use this for initialization
    void Start()
    {
        state               = eShipState.None;
        acceleration        = new Vector2();
        myBody              = gameObject.GetComponent <Rigidbody2D>();
        health              = 60;
        startingHealth      = health;
        startingShield      = shieldHealth;
        boostStartingAmount = boostAmount;
        speed               = 1000;
        maxSpeed            = 5;
        speedUpTime         = 4f;
        myBody.drag         = defaultDrag;

        playerManagerObject = GameObject.Find("PlayerManagerMain");
        //get playerId from the PlayerManager
        playerManager = playerManagerObject.GetComponent <PlayerManager>();
        playerId      = playerManager.AssignPlayer();
        player        = playerManager.players[playerId];
        shipId        = playerManager.AssignShip();
        AIControlled  = false;

        //getting the camera
        trackingCamera = GameObject.Find("camera" + playerId).GetComponent <Camera>();

        //getting the background
        trackingBackground = GameObject.Find("backgroundSprite" + playerId);

        firingTimerReset = firingTimer;
        playerManager.ships.Add(this);
        forward = new Vector2(transform.up.x, transform.up.y);

        base.LateStart();

        var Sprites = gameObject.GetComponentsInChildren <SpriteRenderer>();

        pullArt         = Sprites[5];
        pullArt.enabled = false;

        turretArt = Sprites[6];
    }
Ejemplo n.º 6
0
    //Observe
    void OnKill(ShipRevamped targetShip, Rowball rowball)
    {
        int targetScore = PlayerManager.GetPlayer(targetShip).score;

        PlayerManager.PlayerInfo shooter = PlayerManager.GetPlayer(rowball.shooter.GetComponent <ShipRevamped>());
        PlayerManager.Player     target  = PlayerManager.GetPlayer(targetShip).player;

        CreateExplosion(rowball.position);

        string killContext = "";

        PlayerManager.GetPlayer(targetShip).spree = 0;

        if (scoreMode == ScoreMode.KILL)
        {
            if (rowball.shooter != null)
            {
                float score = baseScorePoints;
                if (shooter.player.team == target.team)
                {
                    score        = penaltyPoints;
                    killContext += "SUICIDE";                    //+" (-1)\n";
                    killContext += "\n";

                    Observer.OnSuicide.Invoke();

                    shooter.Score((int)score);
                    shooter.suicides++;
                }
                else
                {
                    if (Time.time <= shooter.lastKillTime + multiKillThreshhold)
                    {
                        shooter.multikill++;
                    }
                    else
                    {
                        shooter.multikill = 0;
                    }

                    shooter.lastKillTime = Time.time;
                    shooter.spree++;
                    if (shooter.spree > shooter.longestSpree)
                    {
                        shooter.longestSpree = shooter.spree;
                    }

                    if (PlayerManager.GetPlayer(targetShip) == PlayerManager.leader && PlayerManager.leader.score != 0)
                    {
                        //score *= leaderKillBonus;
                        score++;
                        killContext += "LEADER KILL";                        //+" (+1) \n";
                        killContext += "\n";
                        shooter.leaderKills++;
                        //
                        Observer.OnLeaderKill.Invoke();
                        //Debug.Log ("Leader has been killed! x" + leaderKillBonus + "\n");
                    }

                    //float relativeSpeed = rowball.RelativeVelocity (targetShip.velocity).magnitude;
//					if (relativeSpeed > brutalityThreshold) {
//						score += (baseScorePoints * (relativeSpeed / 1000));
//						if(displayPercentScore)
//							shooter.player.textRef.text += "Brutality (+" + (baseScorePoints * relativeSpeed/1000)/scoreToWin * 100 + "%)" + "\n";
//						else
//							shooter.player.textRef.text += "Brutality (+" + (int)(baseScorePoints * relativeSpeed/1000) + ")" + "\n";
//						Debug.Log ("Brutality: +" + (baseScorePoints * relativeSpeed / 1000));
//					}

                    if (shooter.multikill > 0)
                    {
                        score       += (shooter.multikill);                   // Multikill bonus
                        killContext += shooter.multikill == 1?"DOUBLE KILL":
                                       shooter.multikill == 2?"TRIPLE KILL":
                                       "MULTI: " + (shooter.multikill + 1);
                        killContext += "\n";

                        //
                        if (shooter.multikill == 1)
                        {
                            Observer.OnDoubleKill.Invoke();
                        }
                        else if (shooter.multikill == 2)
                        {
                            Observer.OnTripleKill.Invoke();
                        }

                        //Stats
                        if (shooter.multikill > 0)
                        {
                            shooter.multiKills++;
                        }

                        //killContext+=" (+" + shooter.player.multikill + ")" + "\n";
                        //Debug.Log ("Multi ("+ shooter.player.multikill +"): x" + (shooter.player.multikill * (1.0f + multiKillMultiplier)));
                    }

                    if (shooter.spree >= spreeThreshhold)
                    {
                        score++;
                        killContext += "SPREE: " + shooter.spree;                        // + " (+1)\n";
                        killContext += "\n";
                        //Debug.Log ("Spree: " + shooter.player.spree);
                    }

                    //Debug.Log ("Player has earned " + score + " points for a kill.");
                    shooter.Score((int)score);
                }
                if (score != 1)
                {
                    InterfaceManager.CreateTextEffect(
                        killContext,
                        target.ship.position,
                        PlayerManager.TeamColor(shooter.player.team)
                        );
                }
                //else

                /*
                 * InterfaceManager.CreateTextEffect(
                 *      InterfaceManager.instance.deathMessages[(int)Random.Range (0, InterfaceManager.instance.deathMessages.Length)],
                 *      target.ship.position,
                 *      PlayerManager.TeamColor(shooter.player.team),
                 *      2,13
                 * );
                 */
            }
        }
        else if (scoreMode == ScoreMode.LMS)
        {
            if (rowball.shooter != null)
            {
                if (rowball.shooter == targetShip || shooter.player.team == target.team)
                {
                    shooter.Score(penaltyPoints + targetScore / 10);
                }
                else
                {
                    shooter.Score(baseScorePoints);
                }
            }
        }
        float respawnTimePenalty = (targetScore > scoreToWin / 2)? targetScore / 100 * penaltyMultiplier:0.0f;

        if (useRespawns && winners == null)
        {
            targetShip.Respawn(respawnTime + respawnTimePenalty);
        }
    }
Ejemplo n.º 7
0
 private void Start()
 {
     _player        = PlayerManager.Instance.Players[playerIndex];
     _originalColor = image.color;
 }
Ejemplo n.º 8
0
 public static bool cancel(PlayerManager.Player player)
 {
     return((player == PlayerManager.Player.player1 && Input.GetButtonDown("Cancel_1")) ||
            (player == PlayerManager.Player.player2 && Input.GetButtonDown("Cancel_2")));
 }
Ejemplo n.º 9
0
 public static bool interact(PlayerManager.Player player)
 {
     return((player == PlayerManager.Player.player1 && Input.GetButtonDown("Interact_1")) ||
            (player == PlayerManager.Player.player2 && Input.GetButtonDown("Interact_2")));
 }