protected override Vector3 HitPosition(Hitpoint hitpoint) { Vector3 target = hitpoint.transform.position; distance = (hitpoint.transform.position - transform.position).magnitude; return(DistanceToEnd(distance)); }
public void DealDamage(float damage) { List <GameObject> opponents = new List <GameObject>(center.GetOpponents(transform.parent.gameObject.tag.ToString())); foreach (GameObject opponent in opponents) { Hitpoint hitpoint = opponent.GetComponent <Hitpoint>().effectiveHitpoint; float distance = (hitpoint.transform.position - transform.position).magnitude; if (distance <= radius) { hitpoint.TakeDamage(damage * effectiveness * Decay(distance), transform.position, true); if (!hitpoint.shield) { ApplyForce(opponent.GetComponent <Rigidbody>(), Decay(distance)); } } } foreach (Rigidbody floatRb in center.floats) { float distance = (floatRb.transform.position - transform.position).magnitude; if (distance <= radius) { ApplyForce(floatRb, Decay(distance)); } } }
protected override void OnHit(Hitpoint hitpoint) { if (!hitting.Contains(hitpoint)) { hitting.Add(hitpoint); } }
void Awake() { // Init vars duration = maxDuration; hitpoint = GetComponent <Hitpoint> (); activeScale = shield.transform.localScale; deactiveScale = new Vector3(0, 0, 1); }
// Start is called before the first frame update void Start() { SR = GetComponent <SpriteRenderer>(); animator = GetComponent <Animator>(); rb2d = GetComponent <Rigidbody2D>(); Hitpoint Damage = GetComponent <Hitpoint>(); gameObject.SetActive(false); }
public void Damage(int amount) { for (int i = 0; i < amount; i++) { Hitpoint hitpoint = hitpointList[hitpointList.Count - 1]; hitpointList.Remove(hitpoint); hitpoint.Hide(); } }
public void Heal(int amount) { for (int i = 0; i < amount; i++) { Vector2 position = new Vector2(transform.position.x + hitpointList.Count, transform.position.y); Hitpoint hitpoint = Instantiate <Hitpoint>(hitpointPrefab); hitpoint.transform.position = position; hitpointList.Add(hitpoint); } }
void CheckIfHitCraft(Collider2D other) { Hitpoint hitpoint = other.GetComponent <Hitpoint>(); if (!hitpoint || used) { return; } hitpoint.TakeDamage(damage); OnHit(); }
protected override void OnHit(Hitpoint hitpoint) { hitpoint.TakeDamage(damage * weaken, transform.position); if (quota > 0f && quota >= hitpoint.penetrationCost) { quota -= hitpoint.penetrationCost; rb.velocity = rb.velocity * Mathf.Clamp(weaken, 0.75f, 1f); } else { AreaDamage(); } }
void OnTriggerEnter(Collider other) { Hitpoint hitpoint = other.GetComponent <Hitpoint>(); if (!hitpoint) { return; } if (!isBeam && hitpoint.shielded) { return; } Hit(hitpoint); }
void OnTriggerEnter(Collider other) { Bullet bullet = other.GetComponent <Bullet>(); if (bullet) { bullet.HittedByPulse(transform.position); return; } Hitpoint hitpoint = other.GetComponent <Hitpoint>(); if (hitpoint) { hitpoint.HittedByPulse(transform.position); } }
void OnTriggerStay(Collider other) { if (time < nextEffect) { return; } nextEffect = time + 1f / frequency; Hitted(true, other.transform.position); Hitpoint hitpoint = other.GetComponent <Hitpoint>(); if (hitpoint && hitpoint.above) { Vector3 delta = other.transform.position - transform.position; hitpoint.above.GetComponent <Rigidbody>().AddForce( delta.normalized * repulse / delta.magnitude, ForceMode.Impulse); SpawnOnHitEffect(transform.position + (delta.normalized * capsule.radius)); } }
void GrantShield(Collider other) { if (shieldValue == 0f) { return; } Hitpoint hitpoint = other.transform.GetComponentInChildren <Hitpoint>(); if (!hitpoint.shield) { hitpoint = hitpoint.under; } if (!hitpoint) { return; } hitpoint.GainHp(hitpoint.maxHp * shieldValue); hitpoint.maxHp = hitpoint.maxHp + maxShieldValue; hitpoint.shield.Hitted(true, transform.position); }
void OnTriggerEnter2D(Collider2D other) { // Skip white listed collider if (whiteList.Contains(other)) { return; } // Skip if not tag only if (damageTagOnly.Length > 0 && other.tag != damageTagOnly && other.transform.root.tag != damageTagOnly) { return; } // Get HP controller Hitpoint otherHitpoint = other.GetComponentInParent <Hitpoint> (); // If target has hitpoint if (otherHitpoint) { // Deal damage to target otherHitpoint.damage(damage); // If self has hitpoint too (like an object like rock) if (hitpoint) { // Kill by hitpoint hitpoint.damage(hitpoint.hitpoints); } // No self hitpoint (like a bullet) else { // Destroy self Destroy(gameObject); } } }
// Start is called before the first frame update void Start() { hp = player.GetComponent <Hitpoint>(); keephp = 0; }
/** * Spawn a random object on a random child point */ void spawn() { // Respawn again if (spawnTimer > 0) { Invoke("spawn", spawnTimer); } // No spawning if disabled if (spawnDisabled) { return; } // If disables other spawners if (disableSpawnersDuration > 0) { // Toggle them all foreach (Spawner spawner in disableSpawners) { spawner.spawnDisabled = true; } // Revert Invoke("enableSpawners", disableSpawnersDuration); } // Get random object and point Transform spawnPoint = spawnPoints [Random.Range(0, spawnPoints.Count)]; GameObject spawnObject = spawnObjects [Random.Range(0, spawnObjects.Length)]; // Spawn object on spawn point GameObject instance = Instantiate(spawnObject, spawnPoint.position, spawnPoint.rotation) as GameObject; Hitpoint instanceHitpoint = instance.GetComponentInChildren <Hitpoint> (); Spawner instanceSpawner = instance.GetComponentInChildren <Spawner> (); // Set speed of instance, its child and its spawner if (spawnSpeed > 0) { // Set instance child speed foreach (Move instanceMove in instance.GetComponentsInChildren <Move>(true)) { instanceMove.directionSpeed.y = -spawnSpeed; } // Set instance spawner speed if (instanceSpawner) { instanceSpawner.spawnSpeed = spawnSpeed; } } // Set hitpoints if (spawnHitpoints > 0) { // Find all hitpoints foreach (Hitpoint hitpoint in instance.GetComponentsInChildren <Hitpoint>()) { // Set hitpoints to current spawn hitpoints hitpoint.setMaxHitpoints(hitpoint.maxHitpoints + spawnHitpoints); } } // Set hitpoints if (spawnHitpoints > 0) { // Find all hitpoints foreach (Hitpoint hitpoint in instance.GetComponentsInChildren <Hitpoint>()) { // Set hitpoints to current spawn hitpoints hitpoint.setMaxHitpoints(hitpoint.maxHitpoints + spawnHitpoints); } } // Set death star if (spawnDeathStars > 0 && instanceHitpoint != null && instanceHitpoint.deathStars > 0) { instanceHitpoint.deathStars += spawnDeathStars; } // Set random color if (spawnRandomColor) { instance.GetComponentInChildren <SpriteRenderer> ().color = spawnColors [Random.Range(0, spawnColors.Length)]; } // Set random rotation if (spawnRandomRotation) { instance.transform.GetChild(0).GetComponent <Transform> ().eulerAngles = new Vector3(0, 0, Random.Range(0, 360)); } // Set random bonus (and color) if (spawnRandomBonus) { Bonus[] bonuses = GameObject.FindGameObjectWithTag("Storage").GetComponentsInChildren <Bonus> (); instanceHitpoint.deathBonus = bonuses [Random.Range(0, bonuses.Length)]; instance.GetComponentInChildren <SpriteRenderer> ().color = instanceHitpoint.deathBonus.color; } }
void Start() { // Get inits hitpoint = GetComponent <Hitpoint> (); }
protected abstract void OnHit(Hitpoint hitpoint);
void Hit(Hitpoint hitpoint) { ApplyMomentum(hitpoint.GetComponent <Rigidbody>()); SpawnOnHitEffect(HitPosition(hitpoint), (hitpoint.shield != null) && !isBeam); OnHit(hitpoint); }
protected abstract Vector3 HitPosition(Hitpoint hitpoint);
protected override void OnHit(Hitpoint hitpoint) { }
protected override Vector3 HitPosition(Hitpoint hitpoint) { return(hitpoint.transform.position); }
public void InitBar(Hitpoint _hitpoint) { hitpoint = _hitpoint; rt.sizeDelta = new Vector2(Mathf.Clamp(hitpoint.hp * growthScale, minLength, maxLength), 1.75f); gameObject.SetActive(false); }