Exemple #1
0
        public WrapClones(GameObject original, Bounds levelBounds, bool isStatic = false)
        {
            this.original    = original;
            this.levelBounds = levelBounds;
            this.isStatic    = isStatic;
            originalLayer    = original.layer;
            clones           = new GameObject[3]; //max 3 clones for each corner +original
            for (int i = 0; i < clones.Length; i++)
            {
                GameObject clone = GameObject.Instantiate(this.original);



                Component[] components = clone.GetComponentsInChildren(typeof(Component));

                foreach (Component comp in components)
                {
                    if (comp is SpriteRenderer && (comp.gameObject.name == "TAGobj" || comp.gameObject.name == "Chicken" || comp.gameObject.name == "OwnedRenderer"))
                    {
                        if (comp.gameObject.name == "OwnedRenderer")
                        {
                            GameObject.Destroy(comp.gameObject.transform.parent.gameObject);
                        }
                        else
                        {
                            GameObject.Destroy(comp.gameObject);
                        }
                    }

                    if (comp is PlayerHit)
                    {
                        PlayerHit hit = comp as PlayerHit;
                        hit.isClone = true;
                    }
                    if (!(comp is Transform) && !(comp is SpriteRenderer) && !(comp is Collider2D) && !(comp is PlayerHit))
                    {
                        if (comp is LoopOutLevel)
                        {
                            LoopOutLevel loop = comp as LoopOutLevel;
                            loop.isClone = true;
                        }
                        if (comp is Bounce)
                        {
                            Bounce bounce = comp as Bounce;
                            bounce.isClone = true;
                        }
                        //if (comp is PlayerHit) clone.AddComponent<PlayerHitClone>();
                        Destroy(comp);
                    }
                }



                clones[i] = clone;
            }
            foreach (GameObject clone in clones)
            {
                clone.transform.parent = original.transform;
            }
        }
        public override void OnEvent(CreateSplash createSplash)
        {
            var splash = Instantiate(splashEffect, createSplash.Position, Quaternion.identity);

            Destroy(splash, 2f);

            var hits = Physics.SphereCastAll(createSplash.Position, createSplash.Radius, Vector3.one);

            foreach (var hit in hits)
            {
                var player = hit.transform.GetComponent <Player>();
                if (player == null)
                {
                    continue;
                }

                if (player.entity.HasControl)
                {
                    var playerHit = PlayerHit.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);
                    playerHit.Damage        = createSplash.Damage;
                    playerHit.Target        = player.entity;
                    playerHit.WeaponName    = "Sponge";
                    playerHit.PlayerWhoShot = createSplash.PlayerWhoShot.GetState <IPlayer>().Username;
                    playerHit.Send();

                    break;
                }
            }
        }
        private void HitPlayer(HitPlayer command)
        {
            DisplayHelper.WriteInfo($"{_state.PlayerName} recieved HitCommand");

            var @event = new PlayerHit(command.Damage);

            DisplayHelper.WriteInfo($"{_state.PlayerName} persisting PlayerHit event");

            Persist(@event, hitEvent =>
            {
                DisplayHelper.WriteInfo($"{_state.PlayerName} persisted PlayerHit event, updating actor state");

                _state.Health -= hitEvent.Damage;

                _eventCount++;

                if (_eventCount > 5)
                {
                    DisplayHelper.WriteInfo($"{_state.PlayerName} saving snapshot");

                    SaveSnapshot(_state);

                    _eventCount = 0;
                }
            });
        }
Exemple #4
0
        private void Punch()
        {
            var weaponSound = WeaponSound.Create(GlobalTargets.Everyone, ReliabilityModes.Unreliable);

            weaponSound.Position = transform.position;
            weaponSound.Label    = weapon.Label;
            weaponSound.Player   = player.entity;
            weaponSound.Send();

            /*if (!Physics.SphereCast(player.playerCamera.transform.position, weapon.Radius,
             *  player.playerCamera.transform.forward, out var hit,
             *  weapon.MaxDistance)) return;*/

            var hits = Physics.SphereCastAll(player.playerCamera.transform.position, weapon.Radius,
                                             player.playerCamera.transform.forward, weapon.MaxDistance);

            foreach (var hit in hits)
            {
                var boltEntity = hit.transform.GetComponent <BoltEntity>();

                if (boltEntity == null || boltEntity.GetState <IPlayer>() == null || boltEntity.GetState <IPlayer>().Entity == player.entity)
                {
                    return;
                }

                var playerHit = PlayerHit.Create(GlobalTargets.OnlyServer);
                playerHit.Target        = boltEntity;
                playerHit.PlayerWhoShot = player.state.Username;
                playerHit.WeaponName    = weapon.Label;
                playerHit.Damage        = weapon.Damage;
                playerHit.Send();
            }
        }
Exemple #5
0
    private Color normalColour   = Color.red;           //and if it flashes red you need to call an ambulance now.


    void Update()
    {
        //if it's time to generate lasers then proceed otherwise BACK OFF
        timer -= 1 * Time.deltaTime;
        if (timer <= 0)
        {
            //create number of new lasers wanted at a time
            for (int i = 0; i < laserCount; i++)
            {
                //random spawnpoint chosen
                int count = random.Next(0, spawnPoints.Count);
                //create laser and set the transform up using spawnPoint
                laser          = Instantiate(bolt);
                laser.position = spawnPoints[count].position;
                laser.rotation = spawnPoints[count].rotation;
                laser.velocity = spawnPoints[count].transform.forward * speed;
                //have the laser ring (one at each spawnPoint) flash to signal it's creating a laser
                //could have the laser generation delayed to warn player a laser is about to be created
                StartCoroutine(ringFlash(spawnPoints[count]));

                //set up collision system for if laser hits player
                PlayerHit playerHit = laser.GetComponent <PlayerHit>();
                playerHit.body       = body;
                playerHit.target     = target;
                playerHit.spawnPoint = spawnPoint;

                //destroy the laser after 5 seconds - otherwise you end up with 50 million lasers
                Destroy(laser.gameObject, 5f);
            }
            //reset timer
            timer = 1;
        }
    }
Exemple #6
0
    void onPlayerHit(PlayerHit e)
    {
        Vector2 actualSize = LifeBar.sizeDelta;

        actualSize.x      = e.Health * m_LifeBarSize / 100;
        LifeBar.sizeDelta = actualSize;
    }
Exemple #7
0
 protected virtual void OnPlayerHit(PlayerHit player, bool above)
 {
     if (!above)
     {
         player.OnDeath(gameObject);
     }
 }
Exemple #8
0
        private void HitPlayer(HitPlayer command)
        {
            Console.WriteLine($"{PlayerActorState.PlayerName} received HitPlayer");

            Console.WriteLine($"{PlayerActorState.PlayerName} persisting HitPlayer");

            var playerEvent = new PlayerHit(command.Damage);

            Persist(playerEvent, playerHit =>
            {
                Console.WriteLine($"{PlayerActorState.PlayerName} persisted PlayerHit event ok, updating actor state");

                PlayerActorState.Health -= command.Damage;
                EventCount++;

                if (EventCount == 5)
                {
                    Console.WriteLine($"{PlayerActorState.PlayerName} saving snapshot");

                    SaveSnapshot(PlayerActorState);

                    Console.WriteLine($"{PlayerActorState.PlayerName} reseting event count to 0");

                    EventCount = 0;
                }
            });
        }
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Player")
     {
         PlayerHit.Invoke();
     }
 }
Exemple #10
0
    protected override void HitCallback(PlayerHit player)
    {
        int    splitIn          = 2;
        Sprite smallSplitSprite = Resources.Load <Sprite>("SinglePlayer/Enemies/Splitter/SSplitter");
        Object enemyPrefab      = Resources.Load("Prefabs/Enemy1");

        for (int i = 0; i < splitIn; i++)
        {
            GameObject split = GameObject.Instantiate(enemyPrefab) as GameObject;
            split.transform.position = this.transform.position;
            split.name = splitIDs[i] + " SmallSplitter";
            split.GetComponent <SpriteRenderer>().sprite = smallSplitSprite;
            EnemyBase enemyBase = split.GetComponent <EnemyBase>();
            enemyBase.Init();
            enemyBase.CorrectSprite();
            enemyBase.DoStun = false;
            enemyBase.spawnInvulnerability = 0.1f;
            enemyBase.faceRight            = i == 0 || i % 2 == 0; //alternating facing left and right
        }



        player.BounceUp(player.gameObject);
        OnDeath(player);
    }
Exemple #11
0
    void Shooting()
    {
        gunShoot.Play();
        animator.SetTrigger("Shoot");
        shootParticle.Play();
        RaycastHit hit;
        Vector3    direction = shootPoint2.transform.position - shootPoint1.transform.position;

        if (Physics.Raycast(shootPoint1.transform.position, direction, out hit, Mathf.Infinity))
        {
            if (hit.transform.gameObject.CompareTag("Player"))
            {
                PlayerHit playerHit = hit.transform.gameObject.GetComponent <PlayerHit>();
                playerHit.RestartLevel();
            }
            else
            {
                if (hit.transform.gameObject.CompareTag("Enemy"))
                {
                    EnemyHit enemyHit = hit.transform.gameObject.GetComponent <EnemyHit>();
                    enemyHit.Dead();
                }
            }
        }
    }
Exemple #12
0
 protected override void OnPlayerHit(PlayerHit player, bool above)
 {
     if (!above)
     {
         player.OnDeath(gameObject);
     }
 }
Exemple #13
0
        public void TriggerPlayerHitEvent()
        {
            PlayerHit playerHitEvent = PlayerHit.Create();

            playerHitEvent.VictimEntity = SWExtensions.KartExtensions.GetKartWithID(SWMatchmaking.GetMyBoltId()).GetComponent <BoltEntity>();
            playerHitEvent.Send();
        }
    private void PlayAudio(PlayerHit playerAttack)
    {
        if (playerAttack.Blocked)
        {
            RuntimeManager.PlayOneShot(BlockAudio, transform.position);
        }
        else
        {
            switch (playerAttack.AttackType)
            {
            case AttackType.LightPunch:
                RuntimeManager.PlayOneShot(LightPunchAudio, transform.position);
                break;

            case AttackType.HeavyPunch:
                RuntimeManager.PlayOneShot(HeavyPunchAudio, transform.position);
                break;

            case AttackType.LightKick:
                RuntimeManager.PlayOneShot(LightKickAudio, transform.position);
                break;

            case AttackType.HeavyKick:
                RuntimeManager.PlayOneShot(HeavyKickAudio, transform.position);
                break;
            }
        }
    }
 void Awake()
 {
     rigid      = GetComponent <Rigidbody2D>();
     animator   = GetComponent <Animator>();
     playerMove = GetComponent <PlayerMove>();
     playerHit  = GetComponent <PlayerHit>();
 }
 public override void OnEvent(PlayerHit evnt)
 {
     if (evnt.VictimID == _totemOwnership.LocalOwnerID) // The totem owner has been hit
     {
         _totemOwnership.UnsetOwner();
     }
 }
Exemple #17
0
    void Explode()
    {
        if (!started)
        {
            return;
        }
        GameObject.Destroy(GetComponent <Rigidbody2D>());
        ExplosionSprite.SetActive(true);
        Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, explosionRadius);
        for (int i = 0; i < colliders.GetLength(0); i++)
        {
            PlayerHit hit = colliders[i].gameObject.GetComponent <PlayerHit>();
            if (hit == null)
            {
                continue;
            }
            if (hit.gameObject == owner)
            {
                continue;
            }
            if (colliders[i] is BoxCollider2D == false)
            {
                continue;
            }
            hit.OnDeath(owner);
        }
        ExplosionSprite.transform.parent   = null;
        ExplosionSprite.transform.rotation = Quaternion.identity;
        DestroyAfterSeconds DAS = ExplosionSprite.AddComponent <DestroyAfterSeconds>();

        DAS.Seconds = 0.5f;
        GameObject.Destroy(gameObject);
    }
Exemple #18
0
 void Awake()
 {
     playerHit      = GetComponent <PlayerHit>();
     playerMovement = GetComponent <PlayerMovement>();
     checkForVictor = winning.GetComponent <CheckForVictor>();
     currentHealth  = startingHealth;
 }
Exemple #19
0
    // Start is called before the first frame update
    void Start()
    {
        move = false;
        dire = new bool[4] {
            false, false, false, false
        };
        rb = GetComponent <Rigidbody>();


        backObj = GameObject.Find("BackHit");
        backHit = backObj.GetComponent <PlayerHit>();

        frontObj = GameObject.Find("FrontHit");
        frontHit = frontObj.GetComponent <PlayerHit>();

        leftObj = GameObject.Find("LeftHit");
        leftHit = leftObj.GetComponent <PlayerHit>();

        rightObj = GameObject.Find("RightHit");
        rightHit = rightObj.GetComponent <PlayerHit>();

        firstGimmickMove = false;

        gameEnd = false;
    }
Exemple #20
0
        //BOLT

        public override void OnEvent(PlayerHit evnt)
        {
            if (_ionBeamBehaviour && evnt.VictimEntity.isOwner)
            {
                ResetCamera();
                _ionBeamBehaviour.DisableIonBeam();
            }
        }
Exemple #21
0
 protected override void HitCallback(PlayerHit player)
 {
     player.BounceUp(player.gameObject);
     if (!_spikes)
     {
         OnDeath(player);
     }
 }
Exemple #22
0
    void Start()
    {
        healthBar = GameObject.Find("Health Bar").GetComponent <HealthBar>();
        playerHit = GameObject.Find("Player").GetComponent <PlayerHit>();

        // Delete the heart after a bit of time
        Invoke("deleteHeart", 10f);
    }
Exemple #23
0
 protected void OnDeath(PlayerHit player)
 {
     if (player)
     {
         player.BounceUp(gameObject);
     }
     DoSplat();
     GameObject.Destroy(this.gameObject);
 }
Exemple #24
0
    void Start()
    {
        playerHit = GameObject.Find("Player").GetComponent <PlayerHit>();

        //フル
        slider.value = 1;

        Hp = maxHp;
    }
        // BOLT

        public override void OnEvent(PlayerHit evnt)
        {
            if (BoltNetwork.IsServer && evnt.KillerID != evnt.VictimID)
            {
                IncreaseScore(evnt.KillerTeam.ToTeam(), 1);
                SendScoreIncreasedEvent(evnt.KillerTeam.ToTeam());
                CheckScore();
            }
        }
Exemple #26
0
 private void Awake()
 {
     myHitComponent = GetComponent <PlayerHit>();
     gameStorm      = FindObjectOfType <StormBehavior>();
     if (gameStorm != null)
     {
         initialStormTimer = gameStorm.timerDuration;
         currentStormTimer = initialStormTimer;
     }
 }
Exemple #27
0
        private void Shoot(int spreadFactor)
        {
            var weaponFired = WeaponFired.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);

            weaponFired.WeaponId = weapon.Id;
            weaponFired.Entity   = weapon.Player;
            weaponFired.Send();

            var weaponSound = WeaponSound.Create(GlobalTargets.Everyone, ReliabilityModes.Unreliable);

            weaponSound.Position = transform.position;
            weaponSound.Label    = weapon.Label;
            weaponSound.Player   = player.entity;
            weaponSound.Send();

            var dir = Spread(spreadFactor);

            if (!Physics.Raycast(cameraTransform.transform.position, dir, out var hit, 100))
            {
                return;
            }

            if (hit.transform.CompareTag("Stalin"))
            {
                AudioSource soundSource = hit.transform.GetComponent <AudioSource>();
                if (!soundSource.isPlaying)
                {
                    soundSource.Play();
                }
            }

            var boltEntity = hit.transform.GetComponent <BoltEntity>();

            if (boltEntity != null && boltEntity.GetState <IPlayer>() != null)
            {
                var playerHit = PlayerHit.Create(GlobalTargets.OnlyServer);
                playerHit.Target        = boltEntity;
                playerHit.PlayerWhoShot = player.state.Username;
                playerHit.WeaponName    = weapon.Label;
                playerHit.Damage        = weapon.Damage;
                playerHit.Send();


                var applyHitIndicator = ApplyHitIndicator.Create(ReliabilityModes.Unreliable);
                applyHitIndicator.Message  = "Damage: " + weapon.Damage;
                applyHitIndicator.Position = hit.point;
                applyHitIndicator.Send();
            }
            else
            {
                var impactEffect = ImpactEffect.Create(ReliabilityModes.Unreliable);
                impactEffect.Position = hit.point;
                impactEffect.Send();
            }
        }
Exemple #28
0
    private void Initialize()
    {
        rb   = GetComponent <Rigidbody2D>();
        sr   = GetComponent <SpriteRenderer>();
        cols = GetComponents <CapsuleCollider2D>();
        ph   = GetComponent <PlayerHit>();

        startGrounderTimer = groundedTimer;

        ph.Initialize();
    }
Exemple #29
0
    void OnCollisionEnter2D(Collision2D c)
    {
        PlayerHit hit = c.collider.gameObject.GetComponent <PlayerHit>();

        if (!hit)
        {
            return;
        }

        hit.OnDeath(this.gameObject);
    }
        /// <summary>
        /// Deep copy PlayerHit object
        /// </summary>
        /// <returns>Deep copy</returns>
        public PlayerHit DeepCopy()
        {
            PlayerHit newPlayerHit = (PlayerHit)this.MemberwiseClone();

            if (newPlayerHit.Player != null && newPlayerHit.Player.Account != null)
            {
                newPlayerHit.Player.Account.Password = null;
            }

            return(newPlayerHit);
        }
 /// <summary>
 /// Sets a playerHit event to all active GemVisuals.
 /// </summary>
 /// <param name="listener">Listener.</param>
 public void SetListener(PlayerHit listener)
 {
     for(int y = 0; y < visuals.GetLength(1)-1; y++){
         for(int x = 0; x < visuals.GetLength(0); x++){
             visuals[x,y].hitEvent += listener;
         }
     }
 }