public void damageEnemy(GameObject enemy, e_Objects impactEffect, e_DamageType type, float damageMultiplier) { DamageInfo damageInfo = new DamageInfo(); damageInfo.clientNetworkInstanceId = this.GetComponent <NetworkIdentity>().netId; damageInfo.enemyNetworkInstanceId = enemy.GetComponent <NetworkIdentity>().netId; damageInfo.damageType = type; damageInfo.damageTarget = e_DamageTarget.MOB; damageInfo.damageMultiplier = damageMultiplier; Vector3 pos = new Vector3(enemy.transform.position.x, enemy.transform.position.y + 0.5f, enemy.transform.position.z); GameObject o = Instantiate(ResourceStructure.getGameObjectFromObject(impactEffect)); o.transform.position = pos; o.transform.localScale = new Vector3(enemy.transform.lossyScale.x * 2, enemy.transform.lossyScale.y * 2, enemy.transform.lossyScale.z * 2); player.CmdSpawnGameObjectLocally(ResourceStructure.getPathForObject(impactEffect), pos); con.Send(PacketTypes.DEAL_DAMAGE, damageInfo); }
public void sendSkillCast(string pathToEffect, Vector3 relativePosition, Vector3 rotationInEuler, string type, int range, e_DamageType damageType, float damageMultiplier) { Collider[] targetColliders = Physics.OverlapSphere(this.transform.position, range); GameObject target = null; if (type.Equals("aoe")) { createSkill(pathToEffect, relativePosition, null, rotationInEuler, type, range, this.transform.position, null); } foreach (Collider c in targetColliders) { if (c.CompareTag("Enemy")) { target = c.gameObject; MobManager m = target.GetComponent <MobManager>(); if (type.Equals("target")) { if (m.targeted) { continue; } damageEnemy(target, e_Objects.VFX_IMPACT_SKILL_MAGE_DEFUALT, damageType, damageMultiplier); createSkill(pathToEffect, relativePosition, target, rotationInEuler, type, range, target.transform.position, m); m.targeted = true; Debug.Log("found some enemies, targeting"); } if (type.Equals("aoe")) { damageEnemy(target, e_Objects.VFX_IMPACT_MELEE_1, damageType, damageMultiplier); } } } }