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; } }); }
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(); } }
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; } }
void onPlayerHit(PlayerHit e) { Vector2 actualSize = LifeBar.sizeDelta; actualSize.x = e.Health * m_LifeBarSize / 100; LifeBar.sizeDelta = actualSize; }
protected virtual void OnPlayerHit(PlayerHit player, bool above) { if (!above) { player.OnDeath(gameObject); } }
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(); } }
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); }
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(); } } } }
protected override void OnPlayerHit(PlayerHit player, bool above) { if (!above) { player.OnDeath(gameObject); } }
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(); } }
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); }
void Awake() { playerHit = GetComponent <PlayerHit>(); playerMovement = GetComponent <PlayerMovement>(); checkForVictor = winning.GetComponent <CheckForVictor>(); currentHealth = startingHealth; }
// 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; }
//BOLT public override void OnEvent(PlayerHit evnt) { if (_ionBeamBehaviour && evnt.VictimEntity.isOwner) { ResetCamera(); _ionBeamBehaviour.DisableIonBeam(); } }
protected override void HitCallback(PlayerHit player) { player.BounceUp(player.gameObject); if (!_spikes) { OnDeath(player); } }
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); }
protected void OnDeath(PlayerHit player) { if (player) { player.BounceUp(gameObject); } DoSplat(); GameObject.Destroy(this.gameObject); }
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(); } }
private void Awake() { myHitComponent = GetComponent <PlayerHit>(); gameStorm = FindObjectOfType <StormBehavior>(); if (gameStorm != null) { initialStormTimer = gameStorm.timerDuration; currentStormTimer = initialStormTimer; } }
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(); } }
private void Initialize() { rb = GetComponent <Rigidbody2D>(); sr = GetComponent <SpriteRenderer>(); cols = GetComponents <CapsuleCollider2D>(); ph = GetComponent <PlayerHit>(); startGrounderTimer = groundedTimer; ph.Initialize(); }
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; } } }