Inheritance: MonoBehaviour
Example #1
0
    void SpawnNewPlayer(Team team, int inputID)
    {
        Player     player = Instantiate(playerPrefab, GetRandomSpawnPosition(), Quaternion.identity);
        PlayerBody pb     = player.GetComponentInChildren(typeof(PlayerBody)) as PlayerBody;

        player.InitiatePlayer(team, inputID);

        switch (team)
        {
        case Team.Sand:
            GameObject sm = Instantiate(sandman, pb.transform);
            pb.animator = sm.GetComponentInChildren(typeof(Animator)) as Animator;
            break;

        case Team.Fire:
            GameObject pm = Instantiate(pyromaniac, pb.transform);
            pb.animator = pm.GetComponentInChildren(typeof(Animator)) as Animator;
            break;

        case Team.LastIndex:
            break;

        default:
            break;
        }

        players.Add(player);
    }
Example #2
0
    private void OnTriggerEnter(Collider other)
    {
        // 得点球体に衝突
        if (other.name == "Sphere" ||
            other.name == "Sphere(Clone)")
        {
            Destroy(other.gameObject);

            //得点加算
            StartCount.AddScore();

            // 新しい得点球体を生成を予約
            sphereCnt = 0;


            // 過去のプレイヤー情報の位置に胴体部分の作成
            BodyInfo body       = bodyInfo.Pop();
            var      bodyObj    = Instantiate(prefabBody, body.pos, body.qua);
            var      playerBody = bodyObj.GetComponent <PlayerBody>();
            playerBody.forwardBody = bodyTarm;
            bodyTarm = playerBody;
        }
        else
        {
            Debug.Log(other.name);

            // 衝突したのでゲームオーバー処理
            StartCount.GameEndCall();
            anm.ChangeAnimation(QuerySDMecanimController.QueryChanSDAnimationType.NORMAL_LOSE);

            gameOverCnt = 0;
        }
    }
Example #3
0
        internal void UpdateBoxCollider()
        {
            Vector3 actualSize;

            actualSize = PlayerBody.GetComponent <SpriteRenderer>().bounds.size;
            PlayerBody.GetComponent <BoxCollider2D>().size = new Vector2(actualSize.x, actualSize.y);
        }
    public void ApplyCommandOnPlayer(PlayerBody body, MovementCommand command, float deltaTime = -1)
    {
        if(deltaTime < 0)
        {
            deltaTime = Time.deltaTime;
        }

        Transform bodyTransform = body.gameObject.transform;
        Rigidbody bodyRigidbody = body.gameObject.rigidbody;
        if(command.LateralAxis != 0)
        {
            float torqueMagnitude = body.RotAcceleration * command.LateralAxis * deltaTime;
            bodyRigidbody.AddTorque(bodyTransform.up.normalized * torqueMagnitude);
        }

        if(command.FrontAxis != 0)
        {
            float forceMagnitude = body.LinearAcceleration * command.FrontAxis * deltaTime;
            /*
            Vector3 comOffset = (-bodyTransform.up + bodyTransform.forward * Mathf.Sign(command.FrontAxis)) / 2;
            bodyRigidbody.AddForceAtPosition(bodyTransform.forward * forceMagnitude, bodyRigidbody.centerOfMass + comOffset, ForceMode.Acceleration);
            */
            bodyRigidbody.AddForce(bodyTransform.forward.normalized*forceMagnitude);
        }

        if(command.TestButton(MovementCommand.ActionFlags.Jump))
        {
            body.Jump();
        }
    }
    public void DrawActorDebugGUI(VoosActor actor)
    {
        using (new Util.GUILayoutFrobArea(actor.transform.position, 100, 500))
        {
            PhotonView photonView = PhotonView.Get(actor);
            if (photonView == null)
            {
                return;
            }
            PlayerBody playerBody = actor.GetPlayerBody();
            //string pbodyInfo = playerBody == null ? "" : $"Claimed? {playerBody.IsClaimed()} ..play mode? {playerBody.GetIsClaimerPlaying()}";
            string color         = photonView.isMine ? "yellow" : "grey";
            string hash          = actor.GetName().Substring(0, 9);
            bool   locked        = actor.IsLockedByAnother() || actor.IsLockWantedLocally();
            string lockingString = locked ? " LOCKED" : "";
            string lastPos       = actor.unrel == null ? "" : actor.unrel.lastPosition.x.ToFourDecimalPlaces();
            GUILayout.Label($@"<color={color}>{actor.GetDisplayName()}
rot: {actor.GetRotation().ToFourDecimalPlaces()}
last unrel: {actor.lastUnreliableUpdateTime}
lastPX: {lastPos}</color>".Trim());
            GUILayout.Toggle(actor.GetReplicantCatchUpMode(), "Catchup?");
            actor.debug = GUILayout.Toggle(actor.debug, "Debug");
            // owner: {photonView.ownerId}{lockingString}
            // {hash} view {actor.reliablePhotonView.viewID}
            // X: {actor.transform.position.x.ToFourDecimalPlaces()}
            // lastRBMPX: {actor.lastRBMovedPos.x.ToFourDecimalPlaces()}
        }
    }
 // Start is called before the first frame update
 void Start()
 {
     player                = GameObject.FindGameObjectWithTag("PlayerHead").GetComponent <PlayerBody>();
     animator              = GetComponent <Animator>();
     rb2d                  = GetComponent <Rigidbody2D>();
     transform.localScale *= base.VirusScale;
 }
Example #7
0
    public void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.name == "World Border")
        {
            Destroy(this.gameObject);
        }
        if (PhotonNetwork.IsMasterClient == false)
        {
            return;
        }
        PlayerBody hitBody = col.GetComponent <PlayerBody>();
        Explosion  hitBomb = col.GetComponent <Explosion>();


        if (hitBody)
        {
            if (owner == hitBody.shoot)
            {
                return;
            }
            hitBody.movement.photonView.RPC("Hit", RpcTarget.All);

            Destroy(this.gameObject);
        }
        if (hitBomb)
        {
            hitBomb.Hit();
            Destroy(this.gameObject);
        }
    }
Example #8
0
    void OnTriggerEnter(Collider col)
    {
        PickupBase Pickup = col.gameObject.GetComponent <PickupBase>();

        if (Pickup)
        {
            Pickup.PickedUp();
        }
        Projectile proj = col.gameObject.GetComponentInParent <Projectile>();

        if (proj && SinceSpawn >= 3)
        {
            Health -= proj.Damage - (proj.WeaponKind == Weapon.Kind ? 1 : 0);
            if (Health <= 0)
            {
                Health += 100;
                Lives--;
                if (Lives == 0)
                {
                    Instantiate(DeathEffect, transform.position, transform.rotation);
                    PlayerBody.SetActive(false);
                    Weapon.Firing = false;
                    MapHandler.Instance.enabled = false;
                }
                SinceSpawn = 0;
            }
            Destroy(col.gameObject);
        }
    }
        public void ShootInPlayer_InViewScope_Success()
        {
            //Arrange
            var player = new PlayerBody(new ShapeCircle(2, new Point(10, 10)),
                                        new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1);

            var viewPort = Substitute.For <IActiveBodyEyesight>();

            viewPort.GetFrame(Arg.Any <Guid>(), Arg.Any <IMapTile>()).Returns(v =>
                                                                              new ViewFrame()
            {
                Bodies = new List <Body> {
                    player
                }
            });

            var mechanicEngine = Substitute.For <IMechanicEngine>();

            mechanicEngine.ViewPort.Returns(v => viewPort);

            var weapon = Substitute.For <WeaponBase>(10, 100, mechanicEngine, "Gun");

            var npc = new NPCAI(new ShapeCircle(2, new Point(20, 20)), mechanicEngine, 10, 10, 100, 1);

            npc.AddWeapon(weapon);

            //Act
            npc.UpdateState();

            //Assert
            weapon.Received().Shoot(Arg.Any <Point>(), Arg.Any <Vector>(), npc.Id);
        }
Example #10
0
 // Use this for initialization
 void Start()
 {
     PlayerInput.inputPolled += MoveAndShoot;          //make sure we're subscribed to the event out of Player Input
     body            = GetComponentInChildren <PlayerBody>();
     rb              = GetComponent <Rigidbody>();     // Connect our rigidbody variable to our rigidbody component
     attackComponent = GetComponent <IPlayerAttack>(); //cache a reference to our attack script
 }
Example #11
0
    public Ability TurnBodyToAbility(PlayerBody body)
    {
        Ability newAbillity = new Ability();

        newAbillity._name = body._name;
        return(newAbillity);
    }
Example #12
0
        public void OnMoveDistanceShouldBeCalculatedAccordingBodySpeed()
        {
            //Arrange
            var collisionManager = Substitute.For <IShapeCollisionManager>();

            collisionManager.CheckCollision(Arg.Any <Shape>(), Arg.Any <Shape>()).Returns(false);

            IMapEngine me = Substitute.For <IMapEngine>();

            me.GetBodiesForCollision(Arg.Any <ActiveBody>()).Returns(new List <Body>());

            IPhysicsEngine pe = new PhysicsEngine(collisionManager, me);

            int        playerSpeed         = 10;
            Point      playerStartPosition = new Point(0, 0);
            PlayerBody player = new PlayerBody(new ShapeCircle(10, playerStartPosition), new Vector(1, 1), null, null, 100, 100, "Bob", 10, playerSpeed);

            TimeSpan        moveDuration = new TimeSpan(0, 0, 1);
            GameCommandMove moveCommand  = new GameCommandMove(0, new Vector(0, 1), null, player, moveDuration);

            //Act
            pe.ProcessBodyAction(moveCommand);

            //Assert
            double moveSize = playerSpeed * moveDuration.TotalMilliseconds / 1000.0;

            Assert.IsTrue(player.Shape.Position == new Point(playerStartPosition.X, playerStartPosition.Y + moveSize));
        }
Example #13
0
    // Tries to migrate the user to the target actor.
    // If targetActor == null, the user will be actorless.
    public void MigrateUserTo(VoosActor targetActor)
    {
        PlayMain   pm = playMain.GetComponent <PlayMain>();
        PlayerBody targetPlayerBody = targetActor?.GetPlayerBody();

        if (targetActor != null && (!targetActor.GetIsPlayerControllable() || null == targetPlayerBody))
        {
            targetActor.SetIsPlayerControllable(true);
            targetPlayerBody = targetActor.GetPlayerBody();
            Debug.Assert(targetPlayerBody != null, "MigrateUserTo could not add a PlayerBody to target actor.");
        }
        pm.SetPlayerBody(targetPlayerBody);
        // If we are in play mode, we need to reparent the user body.
        // Otherwise this will be done later, when we enter play mode.
        if (!InEditMode())
        {
            userBody.transform.SetParent(playMain.bodyParent);
            userBody.transform.localPosition = Vector3.zero;
            userBody.transform.localRotation = Quaternion.identity;
        }
        if (targetActor != null)
        {
            targetActor.RequestOwnership();
        }
        VoosActor playMainActor = pm.GetPlayerActor();

        Debug.Assert(targetActor == playMainActor, "MigrateUserTo didn't succeed, we wanted targetActor to be " + targetActor + " but PlayMain still has " + playMain);
    }
Example #14
0
        public void SameClassActiveBodiesCouldNotMakeDamageToEachOther()
        {
            //Arrange
            Guid ownerId        = Guid.NewGuid();
            var  handlers       = new MechanicEngineHandlersBuilder();
            var  mechanicEngine = Substitute.For <IMechanicEngine>();
            var  player1        = new PlayerBody(null, new Vector(1, 1), mechanicEngine, null, 100, 100, "Bob", 100, 1);
            var  player2        = new PlayerBody(null, new Vector(1, 1), mechanicEngine, null, 100, 100, "Bob", 100, 1);

            player1.SocialGroups.Add("1");
            player2.SocialGroups.Add("1");
            mechanicEngine.FindBody(ownerId).Returns(player1);

            var bulletCollisionHandler = handlers.BuildBulletCollisionHandler(mechanicEngine);
            var bullet = new Bullet(10, 10, 10, new ShapeCircle(10, new Point(0, 0)), new Vector(1, 1), ownerId, mechanicEngine, 0, string.Empty);

            var gameCommand = new GameCommandMove(0, new Vector(1, 1), mechanicEngine, bullet, new TimeSpan());
            var npc         = Substitute.For <NPCAI>(null, mechanicEngine, 0, 100, 100, 1);

            var physicsResult = new PhysicsProcessingResultCollision(new List <Body>()
            {
                player2
            });

            //Act & Assert
            Assert.IsTrue(bulletCollisionHandler.Item1(gameCommand, physicsResult));
            bulletCollisionHandler.Item2(gameCommand, physicsResult);

            Assert.IsTrue(player1.Life == 100 && player2.Life == 100);
        }
Example #15
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        PlayerBody pb = collision.gameObject.GetComponent <PlayerBody>();

        if (collision.CompareTag("Player") && pb.Lying && pb.WhichPlayer != playerBody.WhichPlayer)
        {
            if (playerBody.do_time > 1)
            {
                if (pb.Trash > 0)
                {
                    int temp = Mathf.CeilToInt(pb.Trash * (float)playerBody.Do_num / 100);
                    pb.Loss_Garbage(temp);
                    playerBody.Pick_Garbage(temp);
                    playerBody.do_time = 0;
                    pb.ShowEmoji(PlayerBody.Emojis.Bedo, 3f);
                    playerBody.ShowEmoji(PlayerBody.Emojis.Do, 3f);
                    AudioManager.Instance.SoundPlay("sfx/Do");
                    AudioManager.Instance.SoundPlay("sfx/BeDo");
                }
            }
            else
            {
                playerBody.do_time += Time.deltaTime;
            }
        }
    }
        public void Update(PlayerBody me)
        {
            if (me.pauseMenu.menuParent && me.pauseMenu.menuParent.gameObject.activeInHierarchy && me.pauseMenu.hologramMenuController.currentMenu == HologramButtonScript.Menu.MainMenu && !isButtonHidden)
            {
                buttonObj.SetActive(true);
                buttonObj.transform.SetParent(me.pauseMenu.menuParent);
                if (!debugButton)
                {
                    buttonObj.transform.localPosition = _position;
                }
                Transform leftFinger  = me.hands.leftPointerFingerTip;
                Transform rightFinger = me.hands.rightPointerFingerTip;

                buttonTimer += Time.deltaTime;
                if (buttonPrimitiveRenderer.bounds.Contains(leftFinger.transform.position) || buttonPrimitiveRenderer.bounds.Contains(rightFinger.transform.position))
                {
                    if (debugButton)
                    {
                        if (me.input.rightTriggerPulled)
                        {
                            buttonObj.transform.position = rightFinger.transform.position;
                            Console.WriteLine("POS: " + buttonObj.transform.localPosition.ToString("G4"));
                            Console.WriteLine("SCL: " + buttonPrimitive.transform.localScale.ToString("G4"));
                        }
                    }

                    if (!buttonPressed && buttonTimer > 0.6f)
                    {
                        AudioSource.PlayClipAtPoint(me.pauseMenu.hologramMenuController.MenuSettings.pressSound, me.pauseMenu.menuParent.transform.position);
                        buttonPressed = true;
                        buttonTimer   = 0f;
                        if (_isToggleButton)
                        {
                            isButtonOn = !isButtonOn;
                        }
                        if (isButtonOn)
                        {
                            buttonPrimitiveRenderer.material.color = Color.magenta;
                        }
                        else
                        {
                            buttonPrimitiveRenderer.material.color = Color.blue;
                        }
                    }
                    else
                    {
                        buttonPressed = false;
                    }
                }
                else
                {
                    buttonPressed = false;
                }
            }
            else
            {
                buttonObj.SetActive(false);
            }
        }
Example #17
0
    // ----------------------------------------------------------------
    //  Doers
    // ----------------------------------------------------------------
    private void SetCharTypeInMe(PlayerTypes _type)
    {
        CharTypeInMe = _type;
        // Color my body!
        Color playerColor = PlayerBody.GetBodyColorNeutral(CharTypeInMe);

        sr_body.color = Color.Lerp(playerColor, Color.black, 0.2f); // darken it slightly.
    }
 void Awake()
 {
     //根据屏幕大小获取边界的宽度和高度
     areaWidth    = Screen.width - player.drawingDimensions.z;
     areaHeight   = Screen.height - player.drawingDimensions.w;
     body         = GetComponentInChildren <PlayerBody>();
     staticPlayer = this;
 }
Example #19
0
 void AbandonPlayerBody()
 {
     if (playerBody != null)
     {
         playerBody.StopControlling(this);
         playerBody = null;
     }
 }
Example #20
0
            internal void AddPlayerModel()
            {
                m_PlayerBody = ObjectUtils.Instantiate(evr.m_PlayerModelPrefab, CameraUtils.GetMainCamera().transform, false).GetComponent <PlayerBody>();
                var renderer = m_PlayerBody.GetComponent <Renderer>();

                evr.GetModule <SpatialHashModule>().spatialHash.AddObject(renderer, renderer.bounds);
                evr.GetModule <SnappingModule>().ignoreList = renderer.GetComponentsInChildren <Renderer>(true);
            }
 public void startGame(List <ConnectedPlayer> players)
 {
     protocol     = gameMaster.protocol;
     this.players = players;
     bodies [0]   = new PlayerBody();
     bodies [1]   = new PlayerBody();
     gameLogic.startGame(gameMaster);
 }
Example #22
0
    // Use this for initialization
    public override void Start()
    {
        // FrameRate固定
        Application.targetFrameRate = 60;

        // 最初は自身が最後尾
        bodyTarm = this;
    }
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.tag == "Player")
     {
         playerBody = collision.GetComponentInParent <PlayerBody>();
         StartAction();
         playerBody.AddPowerUpTimer(duration);
     }
 }
Example #24
0
        public void AddWeapon_Successful()
        {
            var player       = new PlayerBody(null, new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1);
            int weaponsCount = player.WeaponsCount;

            player.AddWeapon(new WeaponSimpleBullet(0, 0, 0, 0, new TimeSpan(), null, "Weapon", new ShapeRectangle(3, 7, new Point(0, 0))));

            Assert.AreEqual(weaponsCount, player.WeaponsCount - 1);
        }
    private void Start()
    {
        InitializeController();

        characterState     = GetComponent <PlayerState>();
        playerMovement     = GetComponent <PlayerMovement>();
        characterInventory = GetComponent <PlayerInventory>();
        playerBody         = GetComponent <PlayerBody>();
    }
Example #26
0
    public void OnTriggerEnter2D(Collider2D col)
    {
        PlayerBody hitBody = col.GetComponent <PlayerBody>();

        if (hitBody)
        {
            hitBody.movement.Hit();
        }
    }
Example #27
0
    /*
     * This enemy only attacks if it's behind the player
     * Dot product will give us orientation : 0 is 90 degree, 1 is in front, -1 is behind
     */

    private float DotToPlayer()
    {
        Vector3    playerToMe = gameObject.transform.position - player.transform.position; //get direction from player to me
        PlayerBody pb         = player.GetComponentInChildren <PlayerBody>();              //Get the player body, so I can see what direction the body is looking

        Debug.DrawRay(player.transform.position, pb.GetForward(), Color.green);
        float dotProduct = Vector3.Dot(playerToMe.normalized, pb.GetForward().normalized);

        return(dotProduct);
    }
Example #28
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        PlayerBody pb = collision.gameObject.GetComponent <PlayerBody>();

        if (collision.transform.CompareTag("Player") && player != (int)pb.WhichPlayer && !pb.Lying)
        {
            pb.Hitted(damage);
            pb.ShowEmoji(PlayerBody.Emojis.Hitted, 0.3f);

            /*int temp = (int)Random.Range(6, 9);
             * collision.gameObject.GetComponent<PlayerBody>().Loss_Garbage(temp);
             */
            Vector2 vector2 = new Vector2(-transform.up.x, -transform.up.y);
            for (int i = 0; i < damage; i++)
            {
                Drop(vector2);
            }

            SoundPlay("sfx/ShootHit");
            Rigidbody2D.velocity = Vector3.zero;
            PoolRecycle();
        }

        if (collision.transform.CompareTag("Wall"))
        {
            Vector2 vector2 = Vector2.zero;
            switch (collision.name)
            {
            case "Wall_left":
                vector2.x = 1;
                break;

            case "Wall_right":
                vector2.x = -1;
                break;

            case "Wall_up":
                vector2.y = -1;
                break;

            case "Wall_down":
                vector2.y = 1;
                break;

            default: break;
            }

            for (int i = 0; i < damage; i++)
            {
                Drop(vector2);
            }
            Rigidbody2D.velocity = Vector3.zero;
            PoolRecycle();
        }
    }
    public void ApplyCommandOnPlayer(PlayerBody body, MovementCommand command, float deltaTime = -1)
    {
        if(deltaTime < 0)
        {
            deltaTime = Time.deltaTime;
        }

        if(command.HasMovement)
        {
        Debug.Log("Command have ("+command.FrontAxis+","+command.LateralAxis+")");
            Transform cameraReference = body.ActiveCamera.transform;
            Rigidbody rigidbody = body.gameObject.rigidbody;
            Transform playerTransform = body.gameObject.transform;
            //calculate target movement
            Vector3 targetMovement = (command.FrontAxis * cameraReference.forward) + (command.LateralAxis * cameraReference.right);
            targetMovement.y = 0;		//purge vertical component
            targetMovement.Normalize();	//normalize

            Vector2 commandVector = new Vector2(command.FrontAxis, command.LateralAxis);

            //accelerate toward target movement
            rigidbody.AddForce(targetMovement * commandVector.magnitude * body.LinearAcceleration * deltaTime);

            //gradually rotate front toward target

            Vector3 currentFront = playerTransform.forward;
            currentFront.y = 0;
            currentFront.Normalize();	//prevent

            float angle = Vector3.Angle(currentFront, targetMovement);
            if(angle != 0)
            {
                //check if remaining delta is smaller than what's percorrble with current angular velocity
                playerTransform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(playerTransform.forward, targetMovement, body.RotAcceleration * deltaTime, body.LinearAcceleration * deltaTime));
                /*
                float potential = body.RotAcceleration * deltaTime;
                if(angle < potential)
                {
                    playerTransform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(playerTransform.forward, targetMovement, 0, 0));
                }
                else
                {
                    rigidbody.AddTorque(body.transform.up * potential);
                }
                */
            }

        }

        if(command.TestButton(MovementCommand.ActionFlags.Jump))
        {
            body.Jump();
        }
    }
Example #30
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     if (((int)collision.GetComponent <PlayerBody>().WhichPlayer + 1) == whichPlayer)
     {
         Charging = true;
         if (p == null)
         {
             p = collision.gameObject.GetComponent <PlayerBody>();
         }
     }
 }
Example #31
0
        public void Shoot_Successful()
        {
            var player = new PlayerBody(new ShapeCircle(0, new Point(0, 0)),
                                        new Vector(0, 0), null, null, 0, 0, "Bob", 100, 1);

            var weapon = Substitute.For <WeaponBase>(0, 0, null, "Gun");

            player.AddWeapon(weapon);
            player.Shoot();

            weapon.Received().Shoot(Arg.Any <Point>(), Arg.Any <Vector>(), player.Id);
        }
    void OnTriggerStay(Collider other)
    {
        gravityCollider.enabled = true;
        PlayerBody playerBody = other.GetComponent <PlayerBody> ();
        RaycastHit surfaceDown;

        if (playerBody && Physics.Linecast(playerBody.transform.position, gravityCollider.transform.position, out surfaceDown))
        {
            Debug.DrawLine(playerBody.transform.position, gravityCollider.transform.position);
            playerBody.playerNormal = surfaceDown.normal;
        }
    }
 public void OnEnable()
 {
     m_body = (PlayerBody)target;
 }