static bool Prefix(HPActionComponent __instance, ref float value)
        {
            Config.Options opts = Config.GetOptions();
            if (opts.GlobalDmgMult != 1)
            {
                value *= opts.GlobalDmgMult;
            }
            if (value > 0.0 && __instance.wgo.is_player && (opts.DmgMult != 1.0))
            {
                if (opts.DmgMult <= 0)
                {
                    value = 0;
                }
                else
                {
                    WorldGameObject player = __instance.wgo;

                    float armor = 0;

                    Item equippedItem = player.GetEquippedItem(ItemDefinition.EquipmentType.HeadArmor);
                    if (equippedItem != null)
                    {
                        armor += equippedItem.definition.armor;
                    }
                    equippedItem = player.GetEquippedItem(ItemDefinition.EquipmentType.BodyArmor);
                    if (equippedItem != null)
                    {
                        armor += equippedItem.definition.armor;
                    }
                    armor += player.GetParam("add_armor", 0.0f);

                    value = (value - armor) * opts.DmgMult + armor;
                }
            }
            return(true);
        }
 static bool Prefix(HPActionComponent __instance, ref WorldGameObject player_wgo, ref float delta_time)
 {
     // quite a hack, but delta_time is used to calculate the energy required for action
     delta_time *= Config.GetOptions().EnergyDrainMult;
     return(true);
 }