private void OnEffect(string eftname)
 {
     if (eftname == "lightning")
     {
         for (int i = 0; i < 9; i++)
         {
             Xffect  component = EffectCache.GetObject(eftname).GetComponent <Xffect>();
             Vector3 zero      = Vector3.zero;
             zero.x = Random.Range(-2.2f, 2.3f);
             zero.z = Random.Range(-2.1f, 2.1f);
             component.SetEmitPosition(zero);
             component.Active();
         }
     }
     else if (eftname == "cyclone")
     {
         Xffect component = EffectCache.GetObject(eftname).GetComponent <Xffect>();
         component.SetDirectionAxis(GetFaceDirection().normalized);
         component.Active();
     }
     else if (eftname == "crystal")
     {
         Xffect component = EffectCache.GetObject("crystal_surround").GetComponent <Xffect>();
         component.Active();
         component = EffectCache.GetObject("crystal").GetComponent <Xffect>();
         component.SetEmitPosition(new Vector3(0f, 1.9f, 1.4f));
         component.Active();
         component = EffectCache.GetObject("crystal_lightn").GetComponent <Xffect>();
         component.SetDirectionAxis(new Vector3(-1.5f, 1.8f, 0f));
         component.Active();
         component = EffectCache.GetObject("crystal").GetComponent <Xffect>();
         component.SetEmitPosition(new Vector3(0f, 1.5f, -1.2f));
         component.Active();
         component = EffectCache.GetObject("crystal_lightn").GetComponent <Xffect>();
         component.SetDirectionAxis(new Vector3(1.4f, 1.4f, 0f));
         component.Active();
     }
     else
     {
         Xffect component = EffectCache.GetObject(eftname).GetComponent <Xffect>();
         component.Active();
     }
 }