public override void Death(Shared.Framework.DamageType damageType) { base.Death(damageType); if (damageType.name == "Player") { GameManager.GM.youMonster++; } }
/*public override bool CanAttack() * { * return (!healed); * }*/ public override void Attack() { Shared.Framework.DamageType dmgtype = new Shared.Framework.DamageType(enemy.gameObject, "Healer"); HeroCharacterController HCC = GameObject.FindGameObjectWithTag("Player").GetComponent <HeroCharacterController>(); if (Vector3.Distance(transform.position, HCC.transform.position) < 3) { HCC.TakeDamage(-10, dmgtype); //healed = true; } }
public override void Attack() { Vector3 target = aimMod.AcquireTarget(); RaycastHit[] hits; Transform transform = enemy.transform; Vector3[] startPos = new Vector3[3] { transform.position + new Vector3(0, 0, 0), transform.position + new Vector3(0, -0.5f, 0), transform.position + new Vector3(0, -1, 0) }; Color[] colours = new Color[3] { Color.red, Color.green, Color.blue }; for (int i = 0; i < 3; i++) { Vector3 aimStart = Vector3.zero; aimStart.y = aimOffset.y; aimStart.x = aimOffset.x * enemy.GetFacingDirection(); startPos[i] += aimStart; } Vector3 direction = target - startPos[0]; direction.Normalize(); direction *= 3f; for (int i = 0; i < 3; i++) { Vector3 endPos = startPos[i] + direction; hits = Physics.RaycastAll(startPos[i], direction, 3f); //Debug.DrawRay(startPos[i], new Vector3(direction, 0, 0), colours[i], 3); Debug.DrawLine(startPos[i], endPos, colours[i], 1); foreach (var hit in hits) { //print(hit.collider.name); if (hit.collider != null && hit.collider.GetComponent <HeroCharacterController>()) { Shared.Framework.DamageType dmgtype = new Shared.Framework.DamageType(enemy.gameObject, "Attacker"); hit.collider.GetComponent <HeroCharacterController>().TakeDamage(10, dmgtype); return; } } } }
public virtual void Death(Shared.Framework.DamageType damageType) { }