Ejemplo n.º 1
0
    public SideEffectPrefab SpawnSideEffectPrefab(SideEffect effect, EntityTransform entityTransform)
    {
        GameObject       sideEffectObj        = SpawnManager.instance.InstantiatePool(effect.Prefab, entityTransform.transform.position, entityTransform.transform.rotation);
        int              projectileInstanceID = sideEffectObj.GetInstanceID();
        SideEffectPrefab prefab = sideEffectObj.GetComponent <SideEffectPrefab>();

        prefab.Initialize(effect.Prefab + "_" + projectileInstanceID);
        m_sideEffectPrefabList.Add(prefab.ServerInstanceId, prefab);
        int transformPosint = (int)entityTransform.EntityTransformType;

        RpcSpawnSideEffectPrefab(effect.EffectIdentifier, prefab.ServerInstanceId, transformPosint);
        return(prefab);
    }
Ejemplo n.º 2
0
    public virtual void ApplyEffect(Ability ability, MobaEntity attacker, MobaEntity reciever)
    {
        m_ability      = ability;
        m_attacker     = attacker;
        m_reciever     = reciever;
        m_endTime      = Time.time + m_duration;
        m_intervalTime = m_duration / (float)m_ticks;

        if (!string.IsNullOrEmpty(m_prefab))
        {
            EntityTransform entityTransform = reciever.GetTransformPosition(m_effectPos);
            m_prefabGameobject = reciever.EntityAbilities.SpawnSideEffectPrefab(this, entityTransform);
            m_prefabGameobject.transform.SetParent(entityTransform.transform);
        }
    }
Ejemplo n.º 3
0
    public void RpcSpawnSideEffectPrefab(string effectIdentifier, string serverInstanceId, int transformPos)
    {
        SideEffect      effect          = AbilityManager.instance.GetSideEffect(effectIdentifier);
        EntityTransform entityTransform = m_mobaEntity.GetTransformPosition((EEntityTransform)transformPos);
        GameObject      sideEffectObj   = SpawnManager.instance.InstantiatePool(effect.Prefab, entityTransform.transform.position, entityTransform.transform.rotation);

        sideEffectObj.transform.SetParent(entityTransform.transform);
        SideEffectPrefab  prefab      = sideEffectObj.GetComponent <SideEffectPrefab>();
        CustomAudioSource audioSource = null;

        if (!string.IsNullOrEmpty(effect.EffectSound))
        {
            audioSource = AudioManager.instance.Play3dSound(effect.EffectSound, effect.Volume, entityTransform.gameObject, effect.LoopSound);
        }

        prefab.Initialize(serverInstanceId, audioSource);
        m_sideEffectPrefabList.Add(prefab.ServerInstanceId, prefab);
    }
Ejemplo n.º 4
0
 public void UnSpawnSideEffectPrefab(SideEffectPrefab prefab)
 {
     SpawnManager.instance.DestroyPool(prefab.gameObject);
     m_sideEffectPrefabList.Remove(prefab.ServerInstanceId);
     RpcUnSpawnSideEffectPrefab(prefab.ServerInstanceId);
 }