public Charm getCharmFromXMLNode(XmlNode node)
    {
        Charm thisCharm = null;

        string scriptName = node ["script"].InnerText;        // node.Attributes ["script"].Value;

        if (scriptName == "Charm")
        {
            thisCharm = new Charm(node);
        }
        else if (scriptName == "Charm_PatrolStatus")
        {
            thisCharm = new Charm_PatrolStatus(node);
        }
        else if (scriptName == "Charm_ExtraCard")
        {
            thisCharm = new Charm_ExtraCard(node);
        }
        else if (scriptName == "Charm_HealRing")
        {
            thisCharm = new Charm_HealRing(node);
        }
        else if (scriptName == "Charm_WeaponBonus")
        {
            thisCharm = new Charm_WeaponBonus(node);
        }
        else if (scriptName == "Charm_OneTimeShield")
        {
            thisCharm = new Charm_OneTimeShield(node);
        }
        else if (scriptName == "Charm_Web")
        {
            thisCharm = new Charm_Web(node);
        }
        else if (scriptName == "Charm_LatchOn")
        {
            thisCharm = new Charm_LatchOn(node);
        }
        else
        {
            Debug.Log("SCRIPT NAME FOR CHARM NOT FOUND: " + scriptName);
        }
        return(thisCharm);
    }
    public Charm getCharmFromParent(Charm parent)
    {
        Charm thisCharm = null;

        if (parent.className == Charm.CharmClass.Charm)
        {
            thisCharm = new Charm(parent);
        }
        else if (parent.className == Charm.CharmClass.PatrolStatus)
        {
            thisCharm = new Charm_PatrolStatus(parent);
        }
        else if (parent.className == Charm.CharmClass.ExtraCard)
        {
            thisCharm = new Charm_ExtraCard(parent);
        }
        else if (parent.className == Charm.CharmClass.HealRing)
        {
            thisCharm = new Charm_HealRing(parent);
        }
        else if (parent.className == Charm.CharmClass.WeaponBonus)
        {
            thisCharm = new Charm_WeaponBonus(parent);
        }
        else if (parent.className == Charm.CharmClass.OneTimeShield)
        {
            thisCharm = new Charm_OneTimeShield(parent);
        }
        else if (parent.className == Charm.CharmClass.Web)
        {
            thisCharm = new Charm_Web(parent);
        }
        else if (parent.className == Charm.CharmClass.LatchOn)
        {
            thisCharm = new Charm_LatchOn(parent);
        }

        else
        {
            Debug.Log("SOMETHING WENT WRONG MAKING: " + parent.className);
        }
        return(thisCharm);
    }