コード例 #1
0
    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);
    }
コード例 #2
0
    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);
                }
            }
        }
    }