MobArena icon indicating copy to clipboard operation
MobArena copied to clipboard

Give pets custom potion effects

Open LexPolka opened this issue 5 years ago • 7 comments

Feature request

Short description

Similiar to bosses and classes, pets should be able to be given potion effects such as strength or speed to improve combat capability.

Implementation details

Basically, you can give effects to pets. Pets are fun to have in Mobarena, they act as a companion, but they don't exactly bring many benefits to the table. So I was thinking maybe give pets more damage output (strength) or more frequent attacks (fast_digging or speed).

Additional info

Doggo with speed and strength.

LexPolka avatar Nov 20 '20 12:11 LexPolka

Additionally wanted:

  • Make the option available in the classes selection so that one class can have speedy dog, and another class have strong dog.

Nesseley avatar Nov 20 '20 12:11 Nesseley

Thanks for the feature request.

I miss some details about how this would be achieved. Like, what would the config-file look like for a setup like this?

garbagemule avatar Nov 20 '20 13:11 garbagemule

maybe similiar to how classes and bosses, maybe like petclasses: pet1: monster: wolf effects: increase_damage:1, speed:100

LexPolka avatar Nov 20 '20 13:11 LexPolka

Oh I like that! Maybe add an option to make the pets invincible or not too?

pets:
  wolf:
    item: bone
    invincible: true
    effects:
      all: health
      knight: speed

Nesseley avatar Nov 20 '20 14:11 Nesseley

now that is very poggers

LexPolka avatar Nov 20 '20 14:11 LexPolka

might be interesting to support mythicmobs as well, just like we can do with the monsters in the waves, using the extension. I'm not sure if this is something that should be redirected to Sait or if it would be possible to make it instantly supportable in the syntax. Either way, it's a fun addition to the arena.

Ghmmy avatar Nov 20 '20 14:11 Ghmmy

Okay, definitely some exciting ideas in here already. There are a couple of points I'd like to make:

  • The idea of a separate "pets" section is pretty good. I think we can make it its own file as well to make things even more coherent and decoupled. So a pets.yml file where you can set up various "pet styles".
  • Having "per-class effects" on pets creates a very tight coupling between pet definitions and class definitions in the "wrong" direction, making the dependency circular - pets depend on classes and classes depend on pets. That would be a nightmare.
  • Should we keep the "item to pet" approach? It does make it possible to configure pets in-game, but because pets and pet items are defined in the config-file anyway, we never really truly get the "in-game only" setup.
  • We are entering Mobs Rework territory very, very quickly. The concept of a "pet" quickly becomes more abstract, which means we need, well, abstractions to support it properly. We might be able to do a small iteration on the current implementation, but it will require some rewriting. I honestly think this kind of suggestion deserves a more thorough iteration though, but yeah, Mobs Rework isn't coming in the near future.

It would make sense to me if pets were defined independently of the items that they spawn from and the classes they are used in. Both are class definition concepts, not pet defintion concepts. This does mean duplication if you want Archers and Rangers to have different kinds of the same pet, but I think that's a very small price to pay for the ease of implementation and maintainability. And if we maintain the "item to pet" approach, it does mean a smaller item pool to select from because "bone" only corresponds to one kind of pet.

As for MythicMobs, I honestly have no idea how well they'd work as pets and if MobArena can even direct them the way they do other pets. The extension can't provide support without major changes in MobArena, because the MACreature class that Sait currently uses to inject MythicMobs definitions isn't used for pets, it's only used for mobs. I don't want to rewrite pets to use that class. That would be a horrible exercise in shoehorning and would probably come with a host of other issues.

garbagemule avatar Nov 20 '20 15:11 garbagemule