// Start is called before the first frame update void Start() { animator = GetComponent <Animator>(); startMagicAttack = false; timeLeft = 5; dynamicAttackDirection = mousePositionDetector.CalculateWorldPosition(); }
protected override void Activate() { GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0f, 2f, 0f), new Quaternion()); HorizontalSwipe pbh = obj.GetComponent <HorizontalSwipe>(); obj.transform.LookAt(mpd.CalculateWorldPosition()); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); obj.transform.localScale = new Vector3(5f, 5f, 5f); pbh.speed = projSpeed; Damage dmg = new Damage(0f, Random.Range(dmgMin, dmgMax), false, false, true); pbh.dmg = stats.RealDamage(dmg); TimedBuff tb = slowdown.Instance; Stat stat = tb.Stats.Find(item => item.Name == Stat.MOVE_SPEED_MULT); // Debug.Log("just like the white winged dove : " + stat.Name + stat.Value + slowdownMult); stat = new Stat(stat.Name, StatBlock.CalcMult(stat.Value, slowdownMult)); tb.Stats.Remove(new Stat(Stat.MOVE_SPEED_MULT)); tb.Stats.Add(stat); tb.Duration += slowdownDur; tb.IsUnique = !slowdownStack; pbh.dmg.buffs.Add(tb); pbh.friendly = true; pbh.ttl = 4000f; pbh.player = gameObject; }
IEnumerator FireProjectile() { int currRot = -(int)size; //30 int currCast = 0; while (currCast < projCount) { //needs to file projectile along cone shape GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0f, 2f, 0f), new Quaternion()); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); ProjectileBehave pbh = obj.GetComponent <ProjectileBehave>(); obj.transform.rotation = Quaternion.Slerp(transform.rotation, rotation, 1f); obj.transform.Rotate(new Vector3(Random.Range(0, 10), currRot, 0)); currRot += (int)((2 * size) / projCount); obj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f); pbh.speed = 15f; Damage dmg = new Damage(0f, 0.45f * Random.Range(dmgMin, dmgMax), true, false, false); pbh.dmg = stats.RealDamage(dmg); pbh.ttl = 2f; pbh.friendly = true; ++currCast; } yield return(null); }
protected override void Activate() { GameObject obj = Instantiate(aoeObj, mpd.CalculateWorldPosition(), new Quaternion()); obj.transform.localScale = new Vector3(size, 1f, size); AoeBehave ab = obj.GetComponent <AoeBehave>(); ab.friendly = true; ab.ttl = duration; ab.Friend = new List <TimedBuff>(); ab.Enemy = new List <TimedBuff>(); TimedBuff ignite = Ignite.Instance; Stat stat = ignite.Stats.Find(item => item.Name == Stat.HEALTH_REGEN); stat.Value = stats.RealDotDamage(stat.Value, igniteMult, false, true, false, false, true); ab.Enemy.Add(ignite); if (buffs) { ab.Friend.Add(Friendly.Instance); } if (debuffs) { ab.Enemy.Add(Enemy.Instance); } }
protected override void Activate() { GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0, 1.5f, 0), new Quaternion()); ProjectileBehave pbh = obj.GetComponentInChildren <ProjectileBehave>(); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); obj.transform.rotation = Quaternion.Slerp(transform.rotation, rotation, 1f); obj.transform.Translate(Vector3.forward * 1.3f); obj.transform.localScale = new Vector3(3.3f, 1f, 3.3f); Damage dmg; if (cost < 0.00001) { dmg = new Damage(Random.Range(dmgMin, dmgMax), 0, false, true, false); } else { float hplost = StatBlock.CalcMult(stats.HealthCur, stats.PhantomHpMult) * cost; stats.HealthCur -= hplost; Debug.Log("Cost player " + hplost + " hp."); dmg = new Damage(Random.Range(dmgMin, dmgMax), hplost / 2f, false, true, true); } pbh.dmg = stats.RealDamage(dmg); pbh.dmg.callback = this; }
protected override void Activate() { GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0, 2f, 0), new Quaternion()); ProjectileBehave pbh = obj.GetComponent <ProjectileBehave>(); //obj.transform.LookAt(mpd.CalculateWorldPosition()); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); obj.transform.rotation = Quaternion.Slerp(transform.rotation, rotation, 1f); obj.transform.localScale = new Vector3(0.4f, 0.4f, 0.4f); pbh.speed = projSpeed; Damage dmg = new Damage(0f, Random.Range(dmgMin, dmgMax), false, false, true); pbh.dmg = stats.RealDamage(dmg); TimedBuff tb = ignite.Instance; Stat stat = tb.Stats.Find(item => item.Name == Stat.HEALTH_REGEN); stat.Value = stats.RealDotDamage(stat.Value, igniteMult, false, true, false, false, true); tb.Duration += igniteDur; tb.IsUnique = !igniteStack; pbh.dmg.buffs.Add(tb); pbh.friendly = true; pbh.ttl = 2f; }
// Start is called before the first frame update protected override void Activate() { fastness = speed; ttl = duration; if (fasttimes) { abil.cdRemain = 0.1f; taptime = doubletapTolerance; } else { abil.cdRemain = MajorCooldown; } fasttimes = !fasttimes; destination = mpd.CalculateWorldPosition(); RemyMovement.destination = destination; }
void FireProjectile() { GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0, 2f, 0), new Quaternion()); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); ProjectileBehave pbh = obj.GetComponent <ProjectileBehave>(); obj.transform.rotation = Quaternion.Slerp(transform.rotation, rotation, 1f); obj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f); pbh.speed = projSpeed; Damage dmg = new Damage(0f, Random.Range(dmgMin, dmgMax), true, false, false); pbh.dmg = stats.RealDamage(dmg); pbh.ttl = 2f; pbh.friendly = true; }
IEnumerator FireProjectile() { Vector3 posMod = Vector3.zero; int rotMod = 0; int tempCount = 1; int currCount = 0; while (currCount < projCount) { GameObject obj = Instantiate(projectile, mpd.CalculateWorldPosition() + new Vector3(0, 6, 0), new Quaternion()); //at mouse position, 6m up. ProjectileBehave phb = obj.GetComponent <ProjectileBehave>(); obj.transform.Rotate(90, rotMod, 0); //rotate around pivot obj.transform.Translate(posMod); //adjust forward obj.transform.localScale = new Vector3(2f, 2f, 2f); currCount++; rotMod = rotMod + (360 / tempCount); if (currCount == 1) { posMod = new Vector3(2, 0, 0); if (projCount != 7) { tempCount = (int)((projCount - 1) / 3); } else { tempCount = 6; } } else if (currCount == ((projCount - 1) / 3) + 1 && projCount != 7) { posMod = new Vector3(4, 0, 0); tempCount = (int)(projCount - 1) - tempCount; rotMod = 0; } phb.friendly = true; phb.speed = 15; Damage dmg = new Damage(0f, Random.Range(dmgMin, dmgMax), true, false, false); phb.dmg = stats.RealDamage(dmg); phb.ttl = 2f; } yield return(null); }
void FireProjectile() { GameObject obj = Instantiate(projectile, gameObject.transform.position + new Vector3(0, 2f, 0), new Quaternion()); ProjectileBehave pbh = obj.GetComponent <ProjectileBehave>(); //obj.transform.LookAt(mpd.CalculateWorldPosition()); var lookPos = mpd.CalculateWorldPosition() - transform.position; lookPos.y = 0; var rotation = Quaternion.LookRotation(lookPos); obj.transform.rotation = Quaternion.Slerp(transform.rotation, rotation, 1f); obj.transform.localScale = new Vector3(0.4f, 0.4f, 0.4f); obj.transform.Rotate(Vector3.up * 90 * Random.Range(-projSpread, projSpread), Space.World); pbh.speed = projSpeed; Damage dmg = new Damage(0f, Random.Range(dmgMin, dmgMax), false, false, true); //Debug.Log("Magic Dmg: " + dmg.magicDmgReal); pbh.dmg = stats.RealDamage(dmg); //Debug.Log("Real Magic Dmg: " + pbh.dmg.magicDmgReal); pbh.friendly = true; pbh.ttl = 2f; }