Exemple #1
0
    void Update()
    {
        if (bodyIsBeingAttracted && lerpPct < 1 && isActive)
        {
            // interpolate the body from start to end.
            AttractedBody.transform.position = Vector3.Lerp(startPosition, end.position, lerpPct);
            AttractedBody.transform.rotation = Quaternion.Lerp(startRotation, end.rotation, lerpPct);

            // updating the position using a time scale.
            lerpPct += Time.deltaTime / transitionTime;
        }
        else
        {
            // enabling custom gravity once again.
            if (lerpPct >= 1 && AttractedBodyGravityScript)
            {
                AttractedBodyGravityScript.EnableVelocity(true);
                AttractedBodyGravityScript = null;
            }

            // reseting default values.
            lerpPct = 0;
            bodyIsBeingAttracted = false;
        }
    }
Exemple #2
0
    void OnTriggerEnter(Collider other)
    {
        if (!isActive)
        {
            return;
        }

        AttractedBody = other.gameObject;

        // computing the point nearest to the player.
        float nearA = (AttractedBody.transform.position - pointA.position).sqrMagnitude;
        float nearB = (AttractedBody.transform.position - pointB.position).sqrMagnitude;

        // the player will be teleported to the nearest point.
        // for the start pos we do not use a transform because if the player
        // transform is copied then the start point updates with the player position.
        startPosition = AttractedBody.transform.position;
        startRotation = AttractedBody.transform.rotation;
        end           = nearA > nearB ? pointA : pointB;

        // start lerping the player toward the other point.
        bodyIsBeingAttracted = true;

        // deactivate gravity script for the player.
        NPlayerController PlayerGravityScript = AttractedBody.GetComponent <NPlayerController>();

        if (PlayerGravityScript)
        {
            AttractedBodyGravityScript = PlayerGravityScript;
            AttractedBodyGravityScript.EnableVelocity(false);
        }
    }
Exemple #3
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null)
        {
            if (!np.GetMovementBool("pushed"))
            {
                np.HitByAir(-collision.contacts[0].normal);
            }
            if (!collided)
            {
                IEnumerator coroutine = Explosion(false);
                StartCoroutine(coroutine);
            }
        }
        if (w != null)
        {
            w.HitByAir(-collision.contacts[0].normal, wielder);
            if (!collided)
            {
                IEnumerator coroutine = Explosion(false);
                StartCoroutine(coroutine);
            }
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")))
        {
            if (!collided)
            {
                IEnumerator coroutine = Explosion(true);
                StartCoroutine(coroutine);
            }
        }
    }
Exemple #4
0
    public override void SetWielder(NPlayerController n, Player j)
    {
        // Set wielder
        base.SetWielder(n, j);

        // Set state variables
        held         = true;
        decelerating = false;
        falling      = false;
        activeWeapon = true;
        animator.SetBool("gathering", true);
        animator.SetBool("collided", false);
        _activeTime = activeTime;

        // Set reference variables
        rb.simulated    = true;
        rb.gravityScale = 0f;
        cc.enabled      = true;
        cc.isTrigger    = true;

        // Move to character
        Vector3 pct = wielder.transform.position;

        transform.position = new Vector3(pct.x + 0.5f, pct.y + 0.5f, pct.z);
        orbit = transform.position;
    }
Exemple #5
0
 public override void HitByAir(Vector2 normal, NPlayerController wielder)
 {
     base.HitByAir(normal, wielder);
     Physics2D.IgnoreCollision(cc, this.wielder.GetCollider(), false);
     Physics2D.IgnoreCollision(cc, wielder.GetCollider(), true);
     this.wielder = wielder;
     rb.velocity  = normal * speed;
 }
Exemple #6
0
 private void Awake()
 {
     if (instance != null)
     {
         Debug.Log("Multiple NPlayerController. Something went wrong");
     }
     instance = this;
 }
Exemple #7
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        NPlayerController player = collider.gameObject.GetComponent <NPlayerController>();

        if (player != null && player.GetLivingStatus())
        {
            player.DeathBySpikes(horizontal);
        }
    }
Exemple #8
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        NPlayerController player = collider.gameObject.GetComponent <NPlayerController>();

        if (player != null)
        {
            player.DeathByFalling();
        }
    }
Exemple #9
0
    void OnCollisionEnter2D(Collision2D col)
    {
        NPlayerController otherPlayer = col.gameObject.GetComponent <NPlayerController>();

        if (otherPlayer != null && onFire != null)
        {
            otherPlayer.HitByFire();
        }
    }
Exemple #10
0
 public NStateInfo(NPlayerController p, Rigidbody2D r, BoxCollider2D b, Player j, Animator ac, SpriteRenderer sr, NStateSO bd)
 {
     this.p  = p;
     this.r  = r;
     this.b  = b;
     this.j  = j;
     this.ac = ac;
     this.sr = sr;
     this.bd = bd;
 }
Exemple #11
0
    protected virtual void OnTriggerExit2D(Collider2D collider)
    {
        NPlayerController np = collider.gameObject.GetComponent <NPlayerController>();

        if (np != null)
        {
            playersInRange.Remove(collider.gameObject);
            np.RemoveTotem();
        }
    }
    public void RPC_CreateAuctionDialog(PhotonPlayer caller, int propertyID, int viewID)
    {
        NPlayer   callingPlayer = NPlayerController.FindGamePlayer(caller);
        NProperty property      = NBoardManager.instance.FindProperty(propertyID);

        GameObject dialog = Instantiate(auctionDialogPrefab);

        dialog.GetComponent <PhotonView>().viewID = viewID;
        dialog.GetComponent <NAuctionDialog>().Initialize(callingPlayer, property);
    }
Exemple #13
0
    protected virtual void OnTriggerStay2D(Collider2D collider)
    {
        NPlayerController np = collider.gameObject.GetComponent <NPlayerController>();

        if (np != null)
        {
            playersInRange[collider.gameObject] = np;
            np.TryAddTotem(this, (np.transform.position - collider.transform.position).magnitude);
        }
    }
Exemple #14
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        NPlayerController player = collider.gameObject.GetComponent <NPlayerController>();

        if (player != null)
        {
            animator.SetTrigger("activated");
            player.Bounce();
        }
    }
Exemple #15
0
    protected bool TransitionChecks()
    {
        if (GetBool("succed"))
        {
            return(player.StateTransition(EState.succ));
        }
        else if (GetBool("ashed"))
        {
            return(player.StateTransition(EState.ashes));
        }
        else if (GetBool("spiked"))
        {
            return(player.StateTransition(EState.spiked));
        }
        else if (GetBool("pushed"))
        {
            return(player.StateTransition(EState.pushed));
        }
        else if (GetBool("bounced"))
        {
            return(player.StateTransition(EState.bounced));
        }

        BottomCheck();
        NPlayerController otherPlayer = HeadCheck();

        if (otherPlayer != null && otherPlayer.GetLivingStatus())
        {
            otherPlayer.DeathBySpikes(false);
            SetBool("doubled", false);
            player.TrySpawnAir();
            return(player.StateTransition(EState.boinked));
        }
        else if (GroundCheck())
        {
            if (GroundCheck())
            {
                if (IceCheck())
                {
                    return(player.StateTransition(EState.slipped));
                }
                return(player.StateTransition(EState.normal));
            }
        }
        else if (jumpLockoutFrames <= 0 && !slamButton)
        {
            return(player.StateTransition(EState.airborne));
        }
        return(false);
    }
Exemple #16
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        NPlayerController np = collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collider.gameObject.GetComponent <NWeapon>();

        if (np != null && np != wielder)
        {
            np.HitByFire();
        }
        else if (w != null)
        {
            w.HitByFire();
        }
    }
Exemple #17
0
 protected NPlayerController HeadCheck()
 {
     foreach (RaycastHit2D hit in hits)
     {
         if (hit.collider != null)
         {
             NPlayerController otherPlayer = hit.collider.gameObject.GetComponent <NPlayerController>();
             if (otherPlayer != null && otherPlayer != player && otherPlayer.GetLivingStatus())
             {
                 return(otherPlayer);
             }
         }
     }
     return(null);
 }
    // mode: 0.Trader  1.Tradee  2.Others
    public void Initialize(PhotonPlayer trader, PhotonPlayer tradee, int mode)
    {
        if (mode == 0)
        {
            offerButton.gameObject.SetActive(true);
            cancelButton.gameObject.SetActive(true);
            moneySliderA.interactable = true;
            moneyTextA.interactable   = true;
            moneySliderB.interactable = true;
            moneyTextB.interactable   = true;
        }
        else if (mode == 1)
        {
            offerButton.gameObject.SetActive(false);
            cancelButton.gameObject.SetActive(false);
            acceptButton.gameObject.SetActive(true);
            declineButton.gameObject.SetActive(true);
        }


        playerA = NPlayerController.FindGamePlayer(trader);
        playerB = NPlayerController.FindGamePlayer(tradee);

        // set name texts
        playerNameA.text = trader.NickName;
        playerNameB.text = tradee.NickName;

        // set money sliders
        moneySliderA.maxValue = playerA.CurrentMoney;
        moneySliderB.maxValue = playerB.CurrentMoney;

        // set property list panels
        for (int i = 0; i < playerA.Properties.Count; i++)
        {
            GameObject propertyMiniCard = Instantiate(propertyMiniCardPrefab);
            propertyMiniCard.transform.SetParent(propertyListA, false);
            propertyMiniCardsA.Add(propertyMiniCard.GetComponent <NPropertyMiniCard>());
            propertyMiniCard.GetComponent <NPropertyMiniCard>().Initialize(playerA.Properties[i], 0, i, (mode == 0));
        }
        for (int i = 0; i < playerB.Properties.Count; i++)
        {
            GameObject propertyMiniCard = Instantiate(propertyMiniCardPrefab);
            propertyMiniCard.transform.SetParent(propertyListB, false);
            propertyMiniCardsB.Add(propertyMiniCard.GetComponent <NPropertyMiniCard>());
            propertyMiniCard.GetComponent <NPropertyMiniCard>().Initialize(playerB.Properties[i], 1, i, (mode == 0));
        }
    }
Exemple #19
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null)
        {
            np.HitByWater();
            StartCoroutine("Explosion");
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")))
        {
            StartCoroutine("Explosion");
        }
        else if (w != null)
        {
            w.HitByWater();
        }
    }
Exemple #20
0
    public NState(NStateInfo info, EState state)
    {
        this.state      = state;
        player          = info.p;
        rb              = info.r;
        bc              = info.b;
        bd              = info.bd;
        ac              = info.ac;
        sr              = info.sr;
        joystick        = info.j;
        freshJumpButton = false;
        heldJumpButton  = false;

        globalGravityPerFrame = info.bd.globalGravityPerFrame;
        frozenSlideSpeed      = info.bd.frozenSlideSpeed;
        frozenGravityPerFrame = info.bd.frozenGravityPerFrame;

        platformsLayer = LayerMask.NameToLayer("Platforms");
    }
Exemple #21
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null)
        {
            np.HitByFire();
            IEnumerator explosion = Explosion(Vector2.Reflect(rb.velocity, collision.contacts[0].normal));
            StartCoroutine(explosion);
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")))
        {
            IEnumerator explosion = Explosion(Vector2.Reflect(lastFrameVelocity, collision.contacts[0].normal));
            StartCoroutine(explosion);
        }
        else if (w != null)
        {
            w.HitByFire();
        }
    }
Exemple #22
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null && np.GetLivingStatus() && np != wielder)
        {
            np.HitByEarth(-collision.contacts[0].normal);
        }
        if (w != null)
        {
            w.HitByEarth();
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")) && (wielder != null))
        {
            wielder         = null;
            decelerating    = true;
            falling         = true;
            rb.gravityScale = gravityScale;
        }
    }
Exemple #23
0
    private IEnumerator CamToPosition(Vector3 dest, float size, NPlayerController player)
    {
        if (player != null)
        {
            player.Vibrate(1, 0.5f, 0.5f);
        }
        while (Vector2.Distance(cam.transform.position, dest) > 0.05f)
        {
            cam.transform.position += (dest - cam.transform.position) * 0.125f;
            if (Mathf.Abs(cam.orthographicSize - size) > 0.05f)
            {
                cam.orthographicSize += (size - cam.orthographicSize) * 0.75f;
            }
            else
            {
                cam.orthographicSize = size;
            }
            yield return(new WaitForEndOfFrame());
        }
        cam.transform.position = dest;
        yield return(new WaitForSeconds(0.6f));

        if (cameraQueue.Count > 1)
        {
            cameraCoroutine = cameraQueue.Dequeue();
            StartCoroutine(cameraCoroutine);
        }
        else if (cameraQueue.Count == 1)
        {
            cameraCoroutine = cameraQueue.Dequeue();
            StartCoroutine(cameraCoroutine);
        }
        else
        {
            BeginMatch();
        }
    }
Exemple #24
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        NPlayerController np = collision.collider.gameObject.GetComponent <NPlayerController>();
        NWeapon           w  = collision.collider.gameObject.GetComponent <NWeapon>();

        if (np != null && gracePeriod <= 0)
        {
            np.HitByPlasma(transform.position);
            IEnumerator explosion = Explosion(1f, 0.25f);
            StartCoroutine(explosion);
        }
        else if (collision.collider.gameObject.layer.Equals(LayerMask.NameToLayer("Platforms")) && !collided)
        {
            IEnumerator explosion = Explosion(1f, 0.25f);
            StartCoroutine(explosion);
        }
        else if (w != null)
        {
            NWeaponPlasma wp = collision.collider.gameObject.GetComponent <NWeaponPlasma>();
            if (wp != null)
            {
                if (transform.localScale.x > wp.transform.localScale.x)
                {
                    wp.HitByPlasma(transform.position);
                    IEnumerator explosion = Explosion(2f, 0.5f);
                    StartCoroutine(explosion);
                }
            }
            else
            {
                w.HitByPlasma(transform.position);
                IEnumerator explosion = Explosion(0.25f, 0.1f);
                StartCoroutine(explosion);
            }
        }
    }
Exemple #25
0
 public virtual void HitByAir(Vector2 normal, NPlayerController wielder)
 {
 }
Exemple #26
0
 public override void HitByAir(Vector2 normal, NPlayerController wielder)
 {
     base.HitByAir(normal, wielder);
 }
Exemple #27
0
 public virtual void SetWielder(NPlayerController n, Player j)
 {
     wielder  = n;
     joystick = j;
 }