view prices.config.php @ 363:0b12af2c103a misc

Split prices.php configuration into a separate PHP file, do some cleanups in the code as well.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 30 Mar 2020 10:53:33 +0300
parents
children 02bacce48be0
line wrap: on
line source

<?php
/* Merchant/alchemist price calculator in PHP
 * (C) Copyright 2009-2013,2020 Matti 'Ggr' Hamalainen <ccr@tnsp.org>
 *
 * Requires PHP 5.4 or later, primarily tested on PHP 5.6.x.
 * Also tested on PHP 7.3.
 *
 * Notes:
 * - Possibility for discount can be enabled per section, there is
 *   no "global" discount for everything, however.
 *
 * - Services in $services1_prices have a threshold for quantity
 *   discount, but services in $services2_prices do not. The total
 *   service discount % applies to both, too.
 *
 * - If "extra" field is set (as it is for services that have some
 *   additional material costs), the extra price DOES NOT get
 *   the section discount % applied!!
 *
 * - Ammunition, potions and salves sections have a "base" price,
 *   on top of which specials (more difficult to make, etc.) additional
 *   price can be set.
 *
 */
//
// General settings
//
$pageTitle = "Ggr's Merchant Pricelist";
$pageCharset = "UTF-8";
//$pageCSS = "foobar.css";  // Uncomment and change this, if you want to use your own CSS stylesheet file


//
// Enable different service and product sections
//
$sections = [
  "services1"  => true,
  "services2"  => true,
  "reagents"   => true,
  "arrows"     => true,
  "salves"     => true,
  "potions"    => false,
];


//
// Global additional description string, added to start of the page
//
$global_desc = '
<div style="border: 1px solid #0f0; padding: 15px; color: #ff0; text-align: center; font-size: 8pt;">
<span style="font-size: 20pt;">I do NOT make alchemist potions or rings*, or any SHIP stuff.</span><br />
<br />
(*) Well, actually I do make rings, but only for personal amusement. I do
not wish to spend time trying to come up with some specific ring type.)
</div>
';


//
// Generic services section settings
//
$services = [
  "name"     => "services",
  "title"    => "Generic services",
  "discount" => true,	// enable discounts for this section

  "desc"     => "As one might expect, <b>I have most of the relevant
skills/spells/masteries at 100%</b>.",
];


// Services with discount thresholds for prices
$services1_prices = [
  "fw" => [
    "name"     => "Feather weight",
    "subj"     => "cast",
    "tresh"    => 20,		// threshold count for discount
    "price1"   => 2500,		// price per item below discount threshold
    "base"     => 10000,	// base price for discounted total
    "price2"   => 1750		// price per item with discount
  ],
  "prot" => [
    "name"     => "Protect armour/weapon/item",
    "subj"     => "cast",
    "tresh"    => 20,
    "price1"   => 3000,
    "base"     => 10000,
    "price2"   => 2000
  ],
  "repair" => [
    "name"     => "Repair armour/weapon/item",
    "tresh"    => 6,
    "subj"     => "item",
    "price1"   => 10000,
    "price2"   => 7500,
    "extra"    => " + materials"
  ],
];


// Services _without_ discount threshold
$services2_prices = [
  "labels" => [
    "name"     => "Labelling",
    "subj"     => "item",
    "price"    => 3000
  ],
  "surg80" => [
    "name"     => "Surgery to 80%",
    "subj"     => "item",
    "price"    => 10000,
  ],
  "surg100" => [
    "name"     => "Surgery to 100",
    "subj"     => "item",
    "price"    => 15000,
  ],
  "mip" => [
    "name"     => "Money is Power",
    "subj"     => "cast",
    "price"    => 10000,
  ],
  "makegear" => [
    "name"     => "Make mount gear",
    "subj"     => "item",
    "price"    => 20000,
    "extra"    => " + materials",
  ],
  "refitgear" => [
    "name"     => "Refit mount gear",
    "subj"     => "item",
    "price"    => 10000,
    "extra"    => " + materials"
  ],

  "createaw" => [
    "name"     => "Create armour/weapon",
    "subj"     => "item",
    "price"    => 15000,
    "extra"    => " + materials"
  ],
];


//
// Mage reagents
//
$reagents = [
  "name"     => "reagent",
  "title"    => "Power reagents",
  "discount" => true,	// enable discounts for this section
  "datafile" => "reagents.txt",

  "desc"     => "Bulk orders may require time to complete, inquire.
<b>Notice! Availability presented below may or may not reflect the current stock situation.</b>",

  "prices" => [
    "Blast reagents" => [
      "acid1" => ["acid", "Acid Blast",           "handful of olivine powder",    125],
      "acid2" => ["acid", "Acid Storm",           "pair of interlocked rings",    125],

      "asph1" => ["asph", "Blast Vacuum",         "bronze marble",                150],
      "asph2" => ["asph", "Vacuum Globe",         "small fan",                    150],

      "elec1" => ["elec", "Electrocution",        "small piece of electrum wire", 125],
      "elec2" => ["elec", "Lightning Storm",      "cluster of tungsten wires",    125],

      "cold1" => ["cold", "Cold Ray",             "steel arrowhead",              150],
      "cold2" => ["cold", "Hailstorm",            "handful of onyx gravel",       125],

      "pois1" => ["pois", "Summon Carnal Spores", "silvery bark chip",            125],
      "pois2" => ["pois", "Killing Cloud",        "ebony tube",                   100],

      "fire1" => ["fire", "Lava Blast",           "granite sphere",               125],
      "fire2" => ["fire", "Lava Storm",           "blue cobalt cup",              125],

      "mana1" => ["mana", "Golden Arrow",         "copper rod",                   125],
      "mana2" => ["mana", "Magic Eruption",       "tiny platinum hammer",         125],
    ],

    "Prot reagents" => [
      "phys3" => ["phys", "Armour of Aether",         "small highsteel disc",     200],
      "acid3" => ["acid", "Acid Shield",              "stone cube",               125],
      "asph3" => ["asph", "Aura of Wind",             "tiny leather bag",         275],
      "fire3" => ["fire", "Flame Shield",             "small glass cone",         150],
      "cold3" => ["cold", "Frost Shield",             "grey fur triangle",        275],
      "elec3" => ["elec", "Lightning Shield",         "small iron rod",           100],
      "mana3" => ["mana", "Repulsor Aura",            "quartz prism",             125],
      "pois3" => ["pois", "Shield of Detoxification", "tiny amethyst crystal",    125],
    ],
  ],
];


//
// Ammunition
//
$arrows = [
  "name" => "arrow",
  "title" => "Ammunition",
  "desc" => "Only advertised <b>damage types</b> are available. If you want
other material combos for base ammunition, these may be negotiable. Feel
free to inquire about other ammunition types (bullets, etc.).
",

  "base" => 300, // base price per arrow, the values below are added on top of this
  "discount" => true, // enable discounts for this section

  "i_fields" => 2,
  "i_price" => 2,
  "i_titles" => ["Type", "Materials", "Price / arrow", "#"],
  "prices" => [
    "phys" => ["Normal (phys)", "ebony, feathers, diamond",     0],
    "psi"  => ["Psi",           "* + brain",                    100],
    "acid" => ["Acid",          "* + stomach",                  100],
    "elec" => ["Elec",          "* + tungsten",                 100],
    "mana" => ["Mana",          "* + crystalline",              150],
    "cold" => ["Cold",          "* + ice",                      150],
    "fire" => ["Fire",          "* + fire",                     250],
    "asph" => ["Asphyx",        "* + toadstool",                350],
//    "pois" => ["Poison",        "* + h'cliz",                   300],
  ],
];


//
// Salves
//
$salves = [
  "name" => "salve",
  "title" => "Salves",
  "desc" => "All salves sold by me are <b>+25 to stat</b> with <b>10 min</b>
duration. Salves of same type do not stack, so you can't get +50 or such,
but different types of salves can be used simultaneously (like int and wis).
One salve has 4 portions (e.g. 4 uses) and weighs about 1kg.
<br />
<b>Salve orders will take some time to complete, I don't keep much stock on these currently.</b>
",

  "base" => 6000,
  "discount" => false,

  "i_fields" => 1,
  "i_price" => 1,
  "i_titles" => ["Salve", "Price / piece", "#"],
  "prices" => [
    "str"  => ["+str", 0],
    "con"  => ["+con", 0],
    "int"  => ["+int", 0],
    "wis"  => ["+wis", 0],
    "dex"  => ["+dex", 0],

    "pack" => ["white cloth pack for holding salves [0/15]", 29000],
  ],
];


//
// Alchemist potions
//
$potions = [
  "name" => "potion",
  "title" => "Alchemist potions",
  "desc" => "Potion orders have no guaranteed completion time! If you want
potions sooner rather than later, ask someone else!
",

  "base" => 5500,
  "discount" => false,

  "i_fields" => 1,
  "i_price" => 1,
  "i_titles" => ["Potion", "Price / piece", "#"],
  "prices" => [
    "generic" => ["Generic potion",                   0],
  ],
];

?>