A monoidal_effects monoid for armor
Go to file
2016-02-10 20:09:46 -08:00
COPYING Everything 2016-02-10 20:09:46 -08:00
depends.txt Everything 2016-02-10 20:09:46 -08:00
description.txt Everything 2016-02-10 20:09:46 -08:00
init.lua Everything 2016-02-10 20:09:46 -08:00
mod.conf Everything 2016-02-10 20:09:46 -08:00
README.md Everything 2016-02-10 20:09:46 -08:00

#The Armor Monoid

This mod provides a monoidal_effects monoid for handling armor groups. It provides the "armor" monoid, and a way to register new damage types for players.

Using the monoid

The values in the monoid are tables mapping armor group names to damage multipliers. For example, if I wanted to register an effect granting arcane damage resistance but fleshy damage vulnerability, I could do

monoidal_effects.register_effect_type("magic_barrier", {
  disp_name = "Magic Barrier",
  tags = { magical = 1 },
  monoids = { armor = true },
  cancel_on_death = true,
  values = { armor = { fleshy = 1.5, arcane = 0.3 } },
  icon = "magic_barrier.png",
})

Registering damage types

To add a new damage type to players, use armor_monoid.register_armor_group. For example:

armor_monoid.register_armor_group("arcane", 100)

As you can see, the argument is not a multiplier, but the base armor group rating. Calling this would mean players start off with an armor rating in "arcane" of 100 (no protection).