public void IncreaseReceivedDamage(SNCharacter target, int damage) { if (target.Equals(myCharacter)) { dealedDamageByMe += damage; } }
public void OnHit(SNCharacter character) { if (weapon != null) { weapon.OnHit(character); } }
private IEnumerator ShowBloodSplash(SNWeapon.AttackClass attack, SNCharacter dealer) { if (bloodSplashPrefab != null) { if (attack.bloodSplahIndexes.Length > 0) { int index = attack.bloodSplahIndexes [Random.Range(0, attack.bloodSplahIndexes.Length)]; GameObject gob = Instantiate(bloodSplashPrefab, characterTransform.position, Quaternion.identity); if (dealer) { float direction = transform.position.x - dealer.transform.position.x; if (direction > 0) { gob.GetComponent <SpriteRenderer> ().flipX = true; } } Debug.Log("Show blood splash with index " + index); gob.GetComponent <SpriteRenderer> ().color = bloodColor; gob.GetComponent <Animator> ().Play("Splash" + index); yield return(new WaitForSeconds(1)); gob.GetComponent <SpriteRenderer> ().sortingOrder = -1; //yield return new WaitForSeconds (1); gob.GetComponent <Animator> ().Play("Hide" + index); yield return(new WaitForSeconds(5)); Destroy(gob); } } }
public void HandleCollision(SNCharacter characterToHit) { if (!destroyed) { bool destroy = false; Debug.Log("Handle bullet hit" + characterToHit); if (owner) { if (characterToHit) { if (!characterToHit.Equals(owner)) { characterToHit.TakeDamage(attackDesc, owner); destroy = destroyOnHit; } } else { destroy = destroyOnHit; } } else { Debug.LogError("Missing bullet owner"); } if (destroy) { rotate = false; destroyed = true; if (showHitAnimation) { //bulletAnimator.SetTrigger ("Hit"); if (bulletAnimator) { bulletAnimator.Play("Hit"); } speed = 0; GetComponent <Collider2D> ().enabled = false; Destroy(this.gameObject, durationOfHitAnimation); } else { Destroy(this.gameObject); } } } }
// Use this for initialization void Start() { currentSpeed = runSpeed; rigidBody = GetComponent <Rigidbody2D> (); character = GetComponent <SNCharacter> (); topDownPhysics = GetComponent <TopDownPhysics> (); currentAnimationState = AnimationsStates.Custom; if (rigidBody.isKinematic) { useKinematic = true; } else { useKinematic = false; } }
public void TakeDamage(SNWeapon.AttackClass attack, SNCharacter dealer) { if (!dead) { bool criticalHit = false; int damage = Random.Range(attack.attackDamageMin, attack.attackDamageMax); float crit = Random.Range(0.01f, 1f); if (crit <= attack.criticalDamageRatio) { criticalHit = true; damage *= 2; } ShowHit(); if ((attack.shakeDuration > 0) && (attack.shakeStrengh > 0)) { Camera.main.GetComponent <CameraFollow> ().Shake(attack.shakeDuration, attack.shakeStrengh); } health -= damage; if (healthBar != null) { healthBar.RefreshHealth(health); } if (damageIndicatorPrefab != null) { GameObject gob = Instantiate(damageIndicatorPrefab, transform.GetChild(0).position, Quaternion.identity); gob.GetComponent <DamageIndicator> ().ShowDamage(damage, criticalHit); gob.GetComponent <Animator> ().Play("dmg_indicator_show" + Random.Range(1, 4)); Destroy(gob, 5); } StartCoroutine(ShowBloodSplash(attack, dealer)); ShowHitSpark(attack); if (!immune) { Vector2 dir = dealer.transform.position - this.transform.position; movementController.Hurt(dir, attack.enemyPushDuration); movementController.Knockback(-dir, attack.enemyPushForce, attack.enemyPushDuration); } if (health <= 0 && !dead) { Death(); } } }
public void SetOwner(SNCharacter character) { if (character != null) { owner = character; for (int i = 0; i < this.transform.childCount; i++) { Transform child = this.transform.GetChild(i); if (child != null) { KeepPlayerPosition keepC = child.GetComponent <KeepPlayerPosition> (); if (keepC != null) { keepC.SetPlayerTransform(character.transform); } } } } }
public void InitHUD(SNCharacter player, Color color) { //this.gameObject.SetActive(true); if (player) { playerColor = color; Player = player; EnergyBar.color = color; for (int i = 0; i < healthBars.Count; i++) { Destroy(healthBars[i]); } healthBars.Clear(); for (int i = 0; i < player.health; i++) { GameObject gob = Instantiate(HealthBarFullPrefab, HealthBar); gob.GetComponent <Image> ().color = FullColor * playerColor; healthBars.Add(gob); } } }
private void InstatiatePlayers() { for (int k = 0; k < SpawnPoints.Count; k++) { SpawnPoint temp = SpawnPoints [k]; int randIdx = Random.Range(0, SpawnPoints.Count); SpawnPoints [k] = SpawnPoints [randIdx]; SpawnPoints [randIdx] = temp; } for (int i = 0; i < PlayerInstances.Count; i++) { if (PlayerInstances [i].Joined) { GameObject gob = Instantiate(PlayerPrefab, SpawnPoints [i].point.transform.position, Quaternion.identity); SNCharacter player = gob.transform.GetChild(0).GetComponent <SNCharacter> (); SNCharacter snChar = gob.GetComponent <SNCharacter> (); if (player != null) { SNUserController user = gob.GetComponent <SNUserController> (); //player.SetCharacterColor (PlayerInstances [i].Color); user.Input = ReInput.players.GetPlayer(PlayerInstances [i].ControllID); //user.InputID = PlayerInstances [i].ControllID; player.movementController.lastInputMove = SpawnPoints [i].startDirection; //player.gplay = this; //player.HUD = PlayerInstances [i].HUD; //player.HUD.InitHUD (player, PlayerInstances [i].Color); //player.HealthBarComponent.MaxHealth = player.Health; PlayerInstances [i].ScoreUI.PlayerName.text = PlayerInstances [i].Name; PlayerInstances [i].ScoreUI.PlayerName.color = PlayerInstances [i].Color; PlayerInstances [i].PlayerCharacter = player; PlayerInstances [i].User = user; //CamFollow.Targets.Add (player); } if (snChar && snChar.characterTransform) { cameraFollow.Targets.Add(snChar.characterTransform); } } } }
public void OnHit(SNCharacter character) { Debug.Log("Attack hit:" + character.name); if (character != null && attackToChecking != null) { if ((owner != null) && (!owner.tag.Equals(character.tag))) { if (!currentlyAttackedCharacters.Contains(character)) { if (character.parry) { if (character.weapon != null) { owner.ParryKnockback(character.characterTransform, character.weapon.parryKnockbackDuration, character.weapon.parryKnockbackForce); } } else if (character.blocking) { character.HitBlock(currentAttack, owner.characterTransform, parryKnockbackDuration, parryKnockbackForce); } else if ((character.attackStartTime < 5) && (Mathf.Abs(owner.attackStartTime - character.attackStartTime) < parryOnAttackTimeDifference)) { if (character.weapon != null) { owner.ParryKnockback(character.characterTransform, character.weapon.parryKnockbackDuration, character.weapon.parryKnockbackForce); } character.ParryKnockback(owner.characterTransform, parryKnockbackDuration, parryKnockbackForce); } else { character.TakeDamage(attackToChecking, owner); currentlyAttackedCharacters.Add(character); } } } } }
// Use this for initialization void Start() { movementController = GetComponent <SNMovementController> (); character = GetComponent <SNCharacter> (); AIState = AIStates.Idle; }
// Use this for initialization void Start() { Input = ReInput.players.GetPlayer(0); movementController = GetComponent <SNMovementController> (); character = GetComponent <SNCharacter> (); }
public void SetOwner(SNCharacter character) { owner = character; }