WizardryUtils

WizardryUtils

1M Downloads

Add Summon Attribute Modifiers for Dynamic Minions

anabsolutesloth opened this issue ยท 4 comments

commented

Description

Enhance Dynamic Minion system by adding a Spell Property to adjust or set certain attributes.

Allows modpack makers to make Dynamic Minions stronger/weaker than the base mob.

commented

This could be done something like this:

some_random_dynamic_summon_spell_config.json

{
  "enabled": {
    "book": true,
    "scroll": true,
    "wands": true,
    "npcs": true,
    "dispensers": true,
    "commands": true,
    "treasure": true,
	"trades": true,
    "looting": true
  },
  "tier": "advanced",
  "element": "earth",
  "type": "minion",
  "cost": 30,
  "chargeup": 0,
  "cooldown": 70,
  "base_properties": {
    "minion_lifetime": 600,
    "minion_count": 1,
    "summon_radius": 2,
    "generic.max_health": -1,
    "generic.knockback_resistance": -1
    "generic.attack_damage": -1,
    "<other default common attribute modifiers>": -1
  }
}

If a value is set to -1 (would be the default), then the original mob attribute is used, otherwise, the specified

commented

That seems pretty good, and could also be designed to allow other attributes to be input, though perhaps the attributes could just be its own map within the base_properties to allow that?
ex:

"base_properties": {
  "minion_lifetime": 600,
  "minion_count": 1,
  "summon_radius": 2,
  "attributes": {
    "generic.maxHealth": 60,
    "generic.knockbackResistance": -1,
    "generic.attackDamage": -1,
    "mod.someAttribute": 10
  }
}
commented

Only strings and numbers are supported as base_properties. Other modifications require a structural change of all spell properties (and wizardry's code). They also cannot be optional, either registered & present or not.

commented

At best, with the current system I can add a config String[] where people can add other modded properties, e.g. ["modA.someAttribute", "modB.someAttribute"] and this will cause these props to be registered and expected for all dyn minion spells. That means all dyn minion spell jsons must be overridden and provided by the pack maker