protected T CreateEffect <T>(string source = null) where T : CActionEffect { T effect = CActionEffect.CreateEffect <T>(source, this, source); if (effect == null) { return(null); } effectdic.Add(effect); farther.AddEffect(effect); return(effect); }