public void SendDamage() { Character[] enemys = Object.FindObjectsOfType <Character>(); float damage = PlayerUtil.CalculatingCardPowerValue(80f); if (enemys == null) { return; } foreach (var e in enemys) { if (e == Owner) { continue; } float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward)) * Mathf.Rad2Deg; if ((Owner.transform.position - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 1.8f && angle < 80f) { e.AddNotifyEvent(new CharacterNotifyEvent(CharacterNotifyType.E_Damage, damage)); IsoParticle.CreateParticle("Sliced_Power1", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), angle); IsoParticle.CreateParticle("Sliced_Power2", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), angle + 90f); } } PlayerUtil.ConsumeCardPowerUpStatus(); }
public void SendDamage() { Character[] enemys = Object.FindObjectsOfType <Character>(); float damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]); if (enemys == null) { return; } foreach (var e in enemys) { if (e == Owner) { continue; } if ((Target.Point - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 3f) { e.AddState(new CharacterHitState(e, damage, 0.1f).Init()); e.AddState(new CharacterState(CharacterStateType.E_Stun, e, DataTable._Parameter[1])); IsoParticle.CreateParticle("Sliced_Power1", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), 0f ); IsoParticle.CreateParticle("Sliced_Power2", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), 0f); } } PlayerUtil.ConsumeCardPowerUpStatus(); }
public override void StartAction(Character owner) { base.StartAction(owner); AnimUtil.PlayAnim(owner, "effect0"); damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]); Owner.AddState(new CharacterState(CharacterStateType.E_Invincibility, Owner).Init()); }
public override void StartAction(Character owner) { base.StartAction(owner); AnimUtil.PlayAnim(owner, "effect0"); targetCharacters = new List <Monster>(); Monster[] enemys = Object.FindObjectsOfType <Monster>(); targetCharacters = enemys.ToList().FindAll((c) => c.SystemName == (Target.Target as Monster).SystemName); targetCharacters.Sort((c1, c2) => (c1.transform.position - owner.transform.position).magnitude < (c2.transform.position - owner.transform.position).magnitude ? -1 : 1); damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]); Owner.AddState(new CharacterState(CharacterStateType.E_Invincibility, Owner).Init()); }
public override void StartAction(Character owner) { base.StartAction(owner); AnimUtil.PlayAnim(owner, "effect0"); targetCharacters = new List <Character>(); Character[] enemys = Object.FindObjectsOfType <Character>(); Character target = null; float shortDistance = 99999f; foreach (var e in enemys) { if (e == Owner) { continue; } float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward)) * Mathf.Rad2Deg; float distance = (Owner.transform.position - e.transform.position).magnitude; if (distance <= Isometric.IsometricTileSize.x * 1.8f && angle < 80f) { if (distance < shortDistance) { target = e; shortDistance = distance; } } } if (target == null) { return; } targetCharacters = enemys.ToList().FindAll((c) => c.GetType() == target.GetType()); targetCharacters.Sort((c1, c2) => (c1.transform.position - owner.transform.position).magnitude < (c2.transform.position - owner.transform.position).magnitude ? -1 : 1); damage = PlayerUtil.CalculatingCardPowerValue(50f); Owner.AddNotifyEvent(new CharacterNotifyEvent(CharacterNotifyType.E_Invincibility, true)); }
public void SendDamage() { IsoParticle.CreateParticle("BreakGround", Owner.transform.position - Vector3.up * Isometric.IsometricTileSize.y, 0f) .RotationAnim("effect_ground_power_atk", Owner.transform.rotation); Character[] enemys = Object.FindObjectsOfType <Character>(); float damage = PlayerUtil.CalculatingCardPowerValue(DataTable._Parameter[0]); if (enemys == null) { return; } foreach (var e in enemys) { if (e == Owner) { continue; } float angle = Mathf.Acos(Vector3.Dot((e.transform.position - Owner.transform.position).normalized, Owner.transform.forward)) * Mathf.Rad2Deg; if ((Owner.transform.position - e.transform.position).magnitude <= Isometric.IsometricTileSize.x * 3f && angle < 45f) { e.AddState(new CharacterHitState(e, damage, 0.1f).Init()); IsoParticle.CreateParticle("Sliced_Power1", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), angle); IsoParticle.CreateParticle("Sliced_Power2", e.transform.position + new Vector3(0f, Isometric.IsometricTileSize.y * 0.5f, 0f), angle + 90f); } } PlayerUtil.ConsumeCardPowerUpStatus(); }