Skip to main content

Hoardomatic Code: Enchantment Class

Enchantments are structurally very similar to Embellishments. The big difference is how costs are accounted for by the Item containing them.

Enchantment


String Enchantment_name: The name of the enchantment, usually just the name of a spell, though it may include a degree (Accuracy 3) or notation about which version of an enchantment the item has (Bravery (Cast only)).
Double cf: The embellishment's CF value. Not actually used, but it's there because I started enchantments by copying the embellishment class.
Double flat_cost: The base cost of the enchantment.
Double wt_mod: Weight adjustment, if any, which spells generally don't have.
String motif_option: Not used.
String ench_code: A code similar to the embellishment codes, indicating what kind of item the enchantment can be on. Most are generally applicable, but a few are limited to weapons or armor.

This class works very much like the Embellishments class: it takes a node provided to it and populates the enchantment's properties.

package hoardomatic;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Enchantment {
   
    private String Enchantment_name;
    private Double cf;
    private Double flat_cost;
    private Double wt_mod;
    private String motif_option;
    private String ench_code;

    public Enchantment() {

        Enchantment_name = "";
        cf = 0.0;
        flat_cost = 0.0;
        wt_mod = 1.0;
        motif_option = "";
        ench_code = "";
    }
   
    public Enchantment(Node node) {
        flat_cost = 0.0;

        NodeList tempNodes = node.getChildNodes();
        for (int j = 0; j < tempNodes.getLength(); j++) {
            Node subnode = tempNodes.item(j);

            if (subnode.getNodeType() == Node.ELEMENT_NODE) {
                Element element = (Element) subnode;
               
                if (element.getNodeName().contentEquals("Enchantment")) {
                    Enchantment_name = element.getTextContent();
                }

                if (element.getNodeName().contentEquals("CF")) {
                    cf =Double.parseDouble(element.getTextContent());
                }

                if (element.getNodeName().contentEquals("Cost")) {
                    flat_cost =Double.parseDouble(element.getTextContent());
                }

                if (element.getNodeName().contentEquals("wtmod")) {
                    wt_mod = Double.parseDouble(element.getTextContent());
                }

                if (element.getNodeName().contentEquals("ench_code")) {
                    ench_code = element.getTextContent();
                }

                if (element.getNodeName().contentEquals("Type")) {
                    ench_code = element.getTextContent();
                }

            }

        }

    }

   
   
    public Enchantment(String the_name, Double the_cf, Double the_wt_mod) {

        Enchantment_name = the_name;
        cf = the_cf;
        wt_mod = the_wt_mod;
    }
   
    public void setCost(Double new_cost){
        flat_cost = new_cost;
    }
   
    public Double getCost(){
        return flat_cost;
    }
   
    public void setCF(Double new_cf){
        cf = new_cf;
    }
   
   
    public String getEnchantmentName(){
        return Enchantment_name;
    }
   
    public String getMotifOption(){
        return motif_option;
    }
   
    public Double getCf(){
        return cf;
    }

    public Double getWtMod(){
        return wt_mod;
    }
   
    public String getenchCode(){
        return ench_code;
    }


}

Comments

Popular posts from this blog

Spaced Out Rides

(This is the kind of thing I'd have sent into Pyramid   back in the day, but that's not an option now, so here we are.)   The GURPS Action series is the gift that keeps on giving for a lot of modern-and-later gaming. GURPS Action 2: Exploits has rules for sneaking around, running away, and all kinds of other activities which can be easily transplanted to cyberpunk and other high-tech settings. GURPS Action 6: Tricked-Out Rides provides more of the same for its topic, giving an easy framework for describing and even designing common types of vehicles without all the math and paralysis-by-analysis of GURPS Vehicles. Pick a standardized vehicle type (van, compact car, etc.) and apply modifiers (rugged, tinted windows). But, of course, it’s limited. It’s just ten pages, after all, so it’s great for common passenger vehicles for the modern(ish) era. But higher-tech vehic...

2020 GURPS Challenge PDFs: Incense Trail prices

Over on the forum, somebody asked me how much frankincense and myrrh cost in antiquity. Well, we don't know. We never get as much price information as we like out of history. There's the occasional mention of this or that product being worth its weight in silver or gold, but we can reasonably believe that those are descriptions written by political, cultural, or philosophical commentators trying to give an idea of how expensive things are, not people who have actually done an economic analysis and discovered that the material in question is, by coincidence, exactly the same value as silver or gold and not, say, one and a half times the price of silver or three quarters of the price of gold. We know it was valuable, but not how valuable on the level of individual purchases. But for the convenience of the GM, we can use those comparisons to establish some ballpark figures. Mind you, this is based largely on GURPS rather than historical sources, so it's not something I would h...

dVikingNames

This 2015 dissertation by Dr.  Paul Peterson  is the kind of gaming resource actual academia provides to us. The work contains a list of 517 Viking nicknames and their meanings. They start on p. 127 if you just want to skip ahead. Cool, no? Shane Ivey over on Bluesky suggested bringing a d517 to your next D&D game. And having a random table of Viking names is a great idea, actually. But. 517 doesn't break down into die rolls well. It's the product of two primes, and that does not translate into rolls on dAnythingyoumighthaveinyourdicebag. But its really close to 512, which is a straight-up power of two, and that you can roll. Indeed, if you just ignore the last five items on the list (sorry, enn ǫrvi, ǫrvǫnd, ǫrvǫndr, Øxna-, and øxnabroddr), you just need 3d8, or roll a d8 three times, treating each roll as a separate digit to generate one of 512 possible rolls and looking up the corresponding value. Roll, say, a 5, 7, and 1? That's 305, or lunan , meaning little blac...