Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extended spell/monster info #3397

Closed
0181532686cf4a31163be0bf3e6bb6732bf opened this issue May 11, 2021 · 50 comments · Fixed by #3699
Closed

Extended spell/monster info #3397

0181532686cf4a31163be0bf3e6bb6732bf opened this issue May 11, 2021 · 50 comments · Fixed by #3699
Assignees
Labels
improvement New feature, request or improvement question Question asked ui UI/GUI related stuff
Milestone

Comments

@0181532686cf4a31163be0bf3e6bb6732bf

I don't know if it's by design, but comparing to HoMM 3 there's no extended unit info in troop info dialog. For example, Mummies curse, Liches do attack with death cloud, Griffons always retaliate and so on. For example, this function: https://github.com/ihhub/fheroes2/blob/master/src/fheroes2/dialog/dialog_armyinfo.cpp#L255 can be extended to output all such info and it can made as configurable option (I can make a PR). The real question in this case is, what is the single source of truth for monsters data? XML files seem pretty outdated.

Same goes for spells – there's no information of damage inflicted, which makes it pretty hard to use...

@ihhub ihhub added the question Question asked label May 11, 2021
@ihhub
Copy link
Owner

ihhub commented May 11, 2021

Hi @lyssdod , it is the original behavior of the original game. XML files are not used anywhere anymore.

@LeHerosInconnu
Copy link

Hello @lyssdod,

I don't know if it's by design, but comparing to HoMM 3 there's no extended unit info in troop info dialog. For example, Mummies curse, Liches do attack with death cloud, Griffons always retaliate and so on. For example, this function: https://github.com/ihhub/fheroes2/blob/master/src/fheroes2/dialog/dialog_armyinfo.cpp#L255 can be extended to output all such info and it can made as configurable option (I can make a PR). The real question in this case is, what is the single source of truth for monsters data? XML files seem pretty outdated.

Same goes for spells – there's no information of damage inflicted, which makes it pretty hard to use...

There are already proposals concerning these subjects.
They will be discussed after fheroes2 version 1.0 is released.

Related issues and discussion: #1632, #1627, #1625, #1624, #3224.

@0181532686cf4a31163be0bf3e6bb6732bf

thank you guys! do you mind accepting a PR before 1.0? It will have an option to be disabled by default

@LeHerosInconnu
Copy link

Hello @lyssdod,

thank you guys! do you mind accepting a PR before 1.0? It will have an option to be disabled by default

It's okay for me. :)

@ihhub
Copy link
Owner

ihhub commented May 13, 2021

Hi @lyssdod , before doing this we should find a solution which will be agreed by the majority of the team:

  • what we are going to show
  • where we are going to show
  • will it be an option or a part of engine

The most important question is where we're going to show this extra info as the right part of monster stats dialog is full and the left part needs a delicate UI adjustment for this.

@ihhub
Copy link
Owner

ihhub commented May 13, 2021

This is Monster information window in the battle. As you can see there is no space for the information on the right side of the window:
image

Resizing the window is not trivial at all. However, I agree that this information might be useful for most of players.

@Branikolog , @oleg-derevenetz and @idshibanov , could you please express your opinion as well?

@ihhub ihhub added improvement New feature, request or improvement ui UI/GUI related stuff labels May 13, 2021
@Branikolog
Copy link
Collaborator

The task is definitely not easy.
We have to rearrange elements of this window and there's no guarantee that the result visually will look nice...
Also, each creature will have its own info, so there's a lot of work creating a proper description for each.
First of all we need all these descriptions for each creature to understand the amount of space required. After that we need to decide in what way we want to show it in the window.

@oleg-derevenetz
Copy link
Collaborator

Hi all,

@lyssdod Do you have any concept/outline how this should look like?

@LeHerosInconnu
Copy link

LeHerosInconnu commented May 13, 2021

Hello all,

If I haven't forgotten anything, here are the creature's abilities, immunities, etc.
This is a start, some texts should be reduced. :)

For flying creatures, does this have to be specified in the creature information window?
With just:
"Flies."

Or nothing indicated.
(This would be my choice.)

And for creatures that fire at range?
With just:
"Ranged attack."

Or nothing indicated.
(This would be my choice.)

Ranger:

  • Fires two shots.

Paladin:

  • Strikes twice per attack.

Crusader:

  • Strikes twice per attack. Immune to Curse. Makes double damage to Undead creatures.

Wolf:

  • Bites twice per attack.

Troll:

  • Regenerates full hit points each turn.

War Troll:

  • Regenerates full hit points each turn.

Cyclops:

  • Attack affects two hexagons. Has 20% chance to Paralyze creatures for 3 turns for each attack.

Sprite:

  • Attacked creatures cannot retaliate.

Dwarf:

  • Has 25% chance to resist a spell cast by the opposing hero.

Battle Dwarf:

  • Has 25% chance to resist a spell cast by the opposing hero.

Elf:

  • Fires two shots.

Grand Elf:

  • Fires two shots.

Unicorn:

  • Has 20% chance to Blind creatures for 3 turns for each attack.

Phoenix:

  • Attack affects two hexagons. Immune to Elemental spells (Cold, Fire, Lightning and Elemental Storm spells).

Griffin:

  • Retaliates to each attack.

Hydra:

  • Attacks all adjacent enemy creatures. Attacked creatures cannot retaliate.

Green Dragon:

  • Attack affects two hexagons. Immune to spells.

Red Dragon:

  • Attack affects two hexagons. Immune to spells.

Black Dragon:

  • Attack affects two hexagons. Immune to spells.

Iron Golem:

  • Takes half damage from Elemental spells (Cold, Fire, Lightning and Elemental Storm spells).

Steel Golem:

  • Takes half damage from Elemental spells (Cold, Fire, Lightning and Elemental Storm spells).

Mage:

  • No penalty for attacking adjacent creatures.

Archmage:

  • No penalty for attacking adjacent creatures. Has 20% chance to dispel beneficial spells on targeted creatures.

Giant:

  • Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells).

Titan:

  • Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells). No penalty for attacking adjacent creatures.

Undead creatures are of a special type with special features.
Does this have to be specified in the creature information window?

With just:
"Undead."

Or:
"Immune to Bless, Curse and Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells). Has always Morale at normal level. Reduces the Morale of the Living creatures in the army by one level."
(Way too long.)

Or nothing indicated.
(This would be my choice.)

Mummy:

  • Has 20% chance to Curse creatures for 3 turns for each attack.

Royal Mummy:

  • Has 30% chance to Curse creatures for 3 turns for each attack.

Vampire:

  • Attacked creatures cannot retaliate. Recovers part of the damage inflicted as hit points for the first Vampire in the troop.
    (This is not the case in Heroes 2.)

Vampire Lord:

  • Attacked creatures cannot retaliate. Recovers part of the damage inflicted as hit points, reanimating Vampire Lords in the troop.

Lich:

  • Ranged attack affects all adjacent hexagons.

Power Lich:

  • Ranged attack affects all adjacent hexagons.

Bone Dragon:

  • Lowers the morale of enemy creatures by one level.

Rogue:

  • Attacked creatures cannot retaliate.

Ghost:

  • Creatures decimated by Ghosts become Ghosts.

Genie:

  • Has 10% chance to halve the number of creatures in the attacked troop.

Medusa:

  • Has 20% chance to Petrify creatures for 3 turns for each attack.

Air Elemental:

  • Has always Morale at normal level. Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells) and Meteor Shower. Lightning spells and Elemental Storm make double damage.

Earth Elemental:

  • Has always Morale at normal level. Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells), Lightning spells and Elemental Storm. Meteor Shower makes double damage.

Fire Elemental:

  • Has always Morale at normal level. Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells) and Fire spells. Cold spells make double damage.

Water Elemental:

  • Has always Morale at normal level. Immune to Mind affecting spells (Blind, Paralyze, Berserker and Hypnotize spells) and Cold spells. Fire spells make double damage.

@ihhub ihhub added this to the Beyond 1.0 milestone May 17, 2021
@0181532686cf4a31163be0bf3e6bb6732bf

Hi again, thanks for your comments guys! Yes, I didn't notice that battle window is a bit different and that's indeed a challenge. As for implementation, first of all I thought about moving this into separate header: https://github.com/ihhub/fheroes2/blob/master/src/fheroes2/monster/monster.cpp#L58 and then adding a set of flags for each ability, like so:

namespace Special {
enum monster_special_t {
    SPECIAL_NONE = 1,
    UNLIMITED_RETALIATIONS,
    ...
    SPECIAL_END
}

enum monster_special_info_t {
    "No special abilities",
    "Attacks twice",
    "Unlimited retaliations",
    "Immune to mind spells",
    ...
    "Unknown special ability"
}
}

and then somewhere in monster general info:

{5, 5, 2, 3, 15, Speed::VERYFAST, 4, 24, _( "Grand Elf" ), _( "Grand Elves" ), {300, 0, 0, 0, 0, 0, 0}}, Special::ATTACKS_TWICE,
{14, 14, 25, 50, 300, Speed::VERYFAST, 1, 0, _( "Black Dragon" ), _( "Black Dragons" ), {4000, 0, 0, 0, 2, 0, 0}}, Special::MAGIC_IMMUNITY,
{8, 8, 4, 5, 50, Speed::SLOW, 4, 0, _( "Earth Elemental" ), _( "Earth Elementals" ), {500, 0, 0, 0, 0, 0, 0}}, Special::MIND_SPELLS_IMMUNE | Special::METEOR_SHOWER_VULNERABLE

After that, this struct https://github.com/ihhub/fheroes2/blob/master/src/fheroes2/monster/monster.cpp#L41 has to be extended to accommodate this new data, let's say with u8 special_type.

And for the text rendering, it can be done by cycling through this enum and then assembling a string, like so:

std::string monster_special = "";

for(int s = Special::SPECIAL_BEGIN; s != Special::SPECIAL_END; s++ )
{
    if(monster.special_type & Special::s) {
        monster_special << monster_special_info_t[it] << ".";
    }
}

@0181532686cf4a31163be0bf3e6bb6732bf
Copy link
Author

0181532686cf4a31163be0bf3e6bb6732bf commented May 17, 2021

@LeHerosInconnu thanks for the summary, that's really helpful. I'd stick with "best practices" from H3, so undead units just get "Undead", flying or shooting units don't have anything until it's unlimited shots, and dragons/phoenixes also don't have anything (from my point of view multihex attack is implied from monster size). It also seems that Phoenixes are not reborn but do have "Elemental spells immunity", as per https://mightandmagic.fandom.com/wiki/Phoenix_(H2)

As for percentage probabilities (25% chance to blind, for example), I think it would be better to put just "Blinds" and do it for all similar cases (if someone really cares that much, they should consult wiki or source code, in my opinion).

@Branikolog
Copy link
Collaborator

Branikolog commented May 20, 2021

Hi, @lyssdod

from my point of view multihex attack is implied from monster size

Have to disagree: Cyclops have 2-hex attack being small troop. As well as Champions don't attack 2hexes with their lance.

Breath attack should be discovered through info.

I'd stick with "best practices" from H3, so undead units just get "Undead"

👍

As for percentage probabilities (25% chance to blind, for example), I think it would be better to put just "Blinds" and do it for all similar cases (if someone really cares that much, they should consult wiki or source code, in my opinion).

Agreed, Don't want to watch "numbers%" in the descriptions. Simple text looks authentic for this retro-game.

Also, I'd like to watch the shortest description in this window. If we want, in future we could create an in-game wiki, where player could read about every attribute. For now, I prefer classic, short description. Ex: "Undead; Drains Life; No enemy retaliation."

P.S.
@LeHerosInconnu
I've always thought, that Cavalry and Champions have jousting bonus, like in H3. )

@LeHerosInconnu
Copy link

Correction for Vampire.

Vampire:

  • Attacked creatures cannot retaliate. Recovers part of the damage inflicted as hit points for the first Vampire in the troop.
    (This is not the case in Heroes 2.)

@ihhub
Copy link
Owner

ihhub commented May 31, 2021

This is the first attempt:
image

As you could see the description must be very short to fit to one line written by a small font. This is how it looks when we write in two line:
image
image

And this is how it looks by the big font:
image
image

If we want to proceed with the description (which must fit to 2 lines only) I think we should go with small font.

@LeHerosInconnu
Copy link

Hello @ihhub,

Definitely in small white font.
Sentences should be shortened as much as possible.
Thank you for the visuals. :)

It seems that there will be a Chicken creature in the official mod after version 1.0 o_0 :D

@Branikolog
Copy link
Collaborator

Hi, @ihhub
Looks pretty nice with small white font.
I believe, it could look even better if we place in a special frame or box (like creature counter below) but nevertheless it still looks well.
Are you sure that the longest description (I suppose Elementals of Crusaders) would fit two lines?

@LeHerosInconnu

It seems that there will be a Chicken creature in the official mod after version 1.0 o_0 :D

I think there will be a special state of creature, given if it acts appropriate during battle.

P.S.

Hydra:

  • Attacks all adjacent enemy creatures.

"No retaliation" is missing.

@LeHerosInconnu
Copy link

Hello @Branikolog,

@LeHerosInconnu

It seems that there will be a Chicken creature in the official mod after version 1.0 o_0 :D

I think there will be a special state of creature, given if it acts appropriate during battle.

P.S.

Hydra:

  • Attacks all adjacent enemy creatures.

"No retaliation" is missing.

It's corrected. Thanks. :)

@LeHerosInconnu
Copy link

LeHerosInconnu commented Jun 8, 2021

Hello @ihhub,

Here are the texts in a shorter version:
(Difficult to be shorter for Elementals.)
It may be necessary to display the text on three lines for Elementals.

Ranger:

  • Double shot.

Paladin:

  • Double strike.

Crusader:

  • Double strike. Immune to Curse. Double damage to Undead.

Wolf:

  • Double strike.

Troll:

  • Regenerates Hit Points.

War Troll:

  • Regenerates Hit Points.

Cyclops:

  • Two hexes attack. Chance to Paralyze.

Sprite:

  • No enemy retaliation.

Dwarf:

  • Chance to resist spells.

Battle Dwarf:

  • Chance to resist spells.

Elf:

  • Double shot.

Grand Elf:

  • Double shot.

Unicorn:

  • Chance to Blind.

Phoenix:

  • Two hexes attack. Immune to Cold, Fire, Lightning and Elemental Storm. (Or: "Immune to Elemental spells.")

Griffin:

  • Unlimited retaliation.

Hydra:

  • Attacks all adjacent hexes. No enemy retaliation.

Green Dragon:

  • Two hexes attack. Immune to spells.

Red Dragon:

  • Two hexes attack. Immune to spells.

Black Dragon:

  • Two hexes attack. Immune to spells.

Iron Golem:

  • Half damage from Cold, Fire, Lightning and Elemental Storm. (Or: "Half damage from Elemental spells.")

Steel Golem:

  • Half damage from Cold, Fire, Lightning and Elemental Storm. (Or: "Half damage from Elemental spells.")

Mage:

  • No melee penalty.

Archmage:

  • No melee penalty. Chance to dispel beneficial spells.

Giant:

  • Immune to Blind, Paralyze, Berserker and Hypnotize. (Or: "Immune to Mind spells.")

Titan:

  • Immune to Blind, Paralyze, Berserker and Hypnotize. (Or: "Immune to Mind spells.") No melee penalty.

Mummy:

  • Undead. Chance to Curse.

Royal Mummy:

  • Undead. Chance to Curse.

Vampire:

  • Undead. No enemy retaliation.

Vampire Lord:

  • Undead. No enemy retaliation. Reanimates from enemy. (Or: "Drains life.")

Lich:

  • Undead. Cloud attack. (Or: "Shots all adjacent hexes.")

Power Lich:

  • Undead. Cloud attack. (Or: "Shots all adjacent hexes.")

Bone Dragon:

  • Undead. Lowers enemy Morale.

Rogue:

  • No enemy retaliation.

Ghost:

  • Decimated creature becomes Ghost.

Genie:

  • Chance to halve creatures number.

Medusa:

  • Chance to Petrify.

Air Elemental:

  • Normal Morale. Immune to Mind spells and Meteor Shower. Double damage from Lightning and Elemental Storm. (Or: "2x damage from Lightning and Elemental Storm.") (Or: "Vulnerable to Lightning and Elemental Storm.")

Earth Elemental:

  • Normal Morale. Immune to Mind spells, Lightning and Elemental Storm. Double damage from Meteor Shower. (Or: "2x damage from Meteor Shower.") (Or: "Vulnerable to Meteor Shower.")

Fire Elemental:

  • Normal Morale. Immune to Mind spells and Fire. Double damage from Cold. (Or: "2x damage from Cold.") (Or: "Vulnerable to Cold.")

Water Elemental:

  • Normal Morale. Immune to Mind spells and Cold. Double damage from Fire. (Or: "2x damage from Fire.") (Or: "Vulnerable to Fire.")

@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

Here are the texts in a shorter version:
(Difficult to be shorter for Elementals.)
It may be necessary to display the text on three lines for Elementals

These descriptions look really good and sound very authentic to the Heroes franchise! I have some humble suggestions and questions about how to shorten them further. In general I suggest not to write "Chance to" and just leave the name of the effect or change it to one word. However, I do acknowledge that this might be interpreted by some to mean that the ability or effect happens every time, but some sort of wiki explaining this might solve this and a wiki in general sounds very cool. The ones in bold are suggestions and the italic ones are more like questions or proposals for a debate:

Suggestions Drop Down. Click here
Crusader:
  • Double strike. Curse Immunity. Undead Bane or Hates Undead - That last one is very "Heroes 3"-sounding and I'm not very convinced of it. Maybe because I would prefer to keep the games as distinct as possible.

Troll:

  • Regeneration. - I don't think any creature regenerates mana or anything else other than HP, so just writing Regeneration should be enough (?)

War Troll:

  • Same as above.

Cyclops:

  • Two-Hexed attack. Paralyze or Paralyzes or Paralyzing.

Sprite:

  • No Retaliation. - No one else other than enemy is going to retaliate anyways and there is no creature that has the ability to never retaliate as far as I know so it should only mean one thing.

Dwarf:

  • Spell Resistance or Magic Resistance

Battle Dwarf:

  • Same as above

Unicorn:

  • Blinding or Blinding Strike or Blinding Attack. - "Blind" would sound like they are blind.. As noted above this could sound like it always happens, but a player will quickly realize it doesn't, though.

Phoenix:

  • Two-Hexed Attack. Elemental Spell Immunity - The last one manages to include more spells in one very precise description and it is good if more creatures share this ability or if someone in a future mod desires to give this to another creature.

Hydra:

  • Attacks all adjacent hexes. No Retaliation. - I'm not able to come up with a way to shorten the first ability.

Green Dragon:

  • Two-Hexed Attack. Spell Immunity or Magic Immunity

Red Dragon:

  • Same as above

Black Dragon:

  • Same as above

Iron Golem:

  • Reduced Elemental Spell Damage or Elemental Spell Resistance - Resistance and Immunity could be used as a way to differentiate between partial and 100% resistance, respectively.

Steel Golem:

  • Same as above

Archmage:

  • No melee penalty. Chance to dispel beneficial spells. Dispel Beneficial Spells or Dispel/Cancel/Remove Blessings

Giant:

  • Mind Spell Immunity or Mind Shield or Strong-Minded - I personally like this general way you suggested of naming it. An experienced player will know that it always means those four spells and a beginner could look it up in a wiki, which is generally how some mechanics are refered to. Mind Shield is borrowed from the term used for the same ability in Heroes 4, even if that refers to an item.
    Strong-Minded sort of works for Giants and Titans (albeit very vague), but it sounds wrong if the same description is used for elementals who share this ability.
    I think having a general description, rather than listing them, all makes it possible to give more of an impression of the creature, like how this makes giants and titans seem like strong-minded creatures who are not easily tricked or taken control of by magic. To me, listing the spells one by one seems more like listing a set of rules that were necessary for balancing the game and are independent of the creature in question, in other words very objective and sterile compared to a more "colorful" description of the creature.

Titan:

  • Same as above

Mummy:

  • Undead. Curses - Can be interpreted several ways. Maybe Cursed Attack or Cursed Strike?.

Royal Mummy:

  • Same as above

Vampire:

  • Undead. No Retaliation.

Vampire Lord:

  • Undead. No Retaliation. Drains Life or Life Drain I prefer the latter because it's a noun with adjective rather than a verb in presence (i.e. "drains")

Rogue:

  • No Retaliation.

Ghost:

  • Decimated creature becomes Ghost. - There should be a shorter way of saying this but I can't think of anything like a "Ghostify", which is horrible, or "Turn Troops into Ghosts".

Genie:

  • Halves creatures number. -This sounds a lot like it would happen every time. Maybe "Troop Halving" is better. Not sure if the exact terminology used in Heroes 2 is troop or stack etc.

Medusa:

  • Petrify. or Petrification or Petrifying

Air Elemental:

  • Normal Morale. - Does this mean that they are unaffected by morale? Mind Spell and Meteor Shower Immunity or Mind Shield and Meteor Shower Immunity. Double damage from Lightning and Elemental Storm. (Or: "2x damage from Lightning and Elemental Storm.") (Or: "Vulnerable to Lightning and Elemental Storm.") - I'm not sure how to shorten this last and most important part.. I do like that last alternative which could optionally be phrased like this "Lightning and Elemental Storm Vulnerability"

Earth Elemental:

  • See above.

Fire Elemental:

  • See above.

Water Elemental:

  • See above.

Also I can't seem to remember how two-hex attacks work in Heroes 2 but do dragons damage across two hexes like those standing behind the target too, or is it like an arc/swipe breath, in other words damaging creatures standing on the sides? If it is the former then I think multiple-hex attacks should be named according to which adjacent hexes are hit. Not sure how this could be solved.

Also I notice that some descriptions I came up with are present tense verbs like "Curses", "Drains Life", while others are nouns sometimes with adjectives "Cursed Attack". I generally think that the nouns w/ adjectives are better.

@Branikolog
Copy link
Collaborator

Branikolog commented Jun 14, 2021

Hi, @zenseii

Also I notice that some descriptions I came up with are present tense verbs like "Curses", "Drains Life", while others are nouns sometimes with adjectives "Cursed Attack". I generally think that the nouns w/ adjectives are better.

I think for each description we should decide individually. While "Cursed attack" looks pretty well and not too long, how'd "Drains Life" look in a form of noun? Also, Verbs are shorter. We should prefer short descriptions, as in future, some new creatures could appear with combination of current abilities as well.

So, taking away "chances" is a good proposal. I like both descriptions, but vote for shorter ones.

Troll:

Regenerates Hit Points.
War Troll:

Regenerates Hit Points.

I suggest to take away "Hit Points" leaving just "Regenerates" or "Regeneration".

Phoenix:

Two hexes attack. Immune to Cold, Fire, Lightning and Elemental Storm. (Or: "Immune to Elemental spells.")

Vote for "Immune to Elemental spells".

And the same to Golems.

Giant:

Immune to Blind, Paralyze, Berserker and Hypnotize. (Or: "Immune to Mind spells.")

Same here: vote for "Immune to Mind spells".

For all necromancers creatures I propose to type "Undead" (for missing skeletons and zombies in the list above).

Genie:

Chance to halve creatures number.

I don't like the word "creatures number" in the description. Could It be changed into something like "enemy" or "target"?

Air Elemental:

Normal Morale. Immune to Mind spells and Meteor Shower. Double damage from Lightning and Elemental Storm. (Or: "2x damage from Lightning and Elemental Storm.") (Or: "Vulnerable to Lightning and Elemental Storm.")

For elementals I suggest to transform "Normal morale and immunity to Mind spells" into a single word "Elemental" or "Non-living", which implies this abilities, like it was made with "Undead" (Immune to mind, bless and morale penalties)
Also, I vote for "Vulnerable to Meteor Shower".

@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

Quoted message
> > Hi, zenseii
> 
> > Also I notice that some descriptions I came up with are present tense verbs like "Curses", "Drains Life", while others are nouns sometimes with adjectives "Cursed Attack". I generally think that the nouns w/ adjectives are better.
> 
> I think for each description we should decide individually. While "Cursed attack" looks pretty well and not too long, how'd "Drains Life" look in a form of noun? Also, Verbs are shorter. We should prefer short descriptions, as in future, some new creatures could appear with combination of current abilities as well.
> 
> So, taking away "chances" is a good proposal. I like both descriptions, but vote for shorter ones.
> 
> > Troll:
> > Regenerates Hit Points.
> > War Troll:
> > Regenerates Hit Points.
> 
> I suggest to take away "Hit Points" leaving just "Regenerates" or "Regeneration".
> 
> > Phoenix:
> > Two hexes attack. Immune to Cold, Fire, Lightning and Elemental Storm. (Or: "Immune to Elemental spells.")
> 
> Vote for "Immune to Elemental spells".
> 
> And the same to Golems.
> 
> > Giant:
> > Immune to Blind, Paralyze, Berserker and Hypnotize. (Or: "Immune to Mind spells.")
> 
> Same here: vote for "Immune to Mind spells".
> 
> For all necromancers creatures I propose to type "Undead" (for missing skeletons and zombies in the list above).
> 
> > Genie:
> > Chance to halve creatures number.
> 
> I don't like the word "creatures number" in the description. Could It be changed into something like "enemy" or "target"?
> 
> > Air Elemental:
> > Normal Morale. Immune to Mind spells and Meteor Shower. Double damage from Lightning and Elemental Storm. (Or: "2x damage from Lightning and Elemental Storm.") (Or: "Vulnerable to Lightning and Elemental Storm.")
> 
> For elementals I suggest to transform "Normal morale and immunity to Mind spells" into a single word "Elemental" or "Non-living", which implies this abilities, like it was made with "Undead" (Immune to mind, bless and morale penalties)
> Also, I vote for "Vulnerable to Meteor Shower".
Hi @Branikolog ! I'm not sure you saw that I had made almost the same comments that you did in the dropdown quote I made in mine. I've updated my first comment making this clearer. I figured it was better so we could avoid making this issue into a long wall of text.

Suggestions Drop Down. Click here:

For example in my first post my proposal for a noun version of "Drains life" was "Life Drain", which sounds good unless it exists as a spell? I know Heroes 4 has a spell called this and it does pretty much the same as a vampire attack.

@Branikolog
Copy link
Collaborator

Branikolog commented Jun 14, 2021

Oh, sorry, @zenseii, didn't noticed that! :)
Edit:

Anyway, my thoughts appear to be similar to your post above.)
The only description is not satisfying for me is the ghost's one...
I prefer watching descriptions more poetic and literary in Heroes 2. But as not native English speaker I cannot do nice suggestions in that way. :)
Probably something like : "Absorbs eliminated souls". :)

@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

The only description is not satisfying for me is the ghost's one...
I prefer watching descriptions more poetic and literary in Heroes 2. But as not native English speaker I cannot do nice suggestions in that way. :)
Probably something like : "Absorbs eliminated souls". :)

I agree and as I wrote first, I'm not able to come up with any satisfying way of describing the ghost ability. I also think something more "poetic" is more in line with the essence of the rest of the game/franchise. Also we don't have to be native speakers to come up with good descriptions :)

If @LeHerosInconnu is indeed French as his name would suggest, maybe he has some good suggestions of French/Latins words for turning into a ghost or coming back to life as a ghost that are Anglicizable :)

@LeHerosInconnu
Copy link

Hello everyone,

Whatever description is used, I suggest that it not be ambiguous.
For example with "No enemy retaliation." and "No retaliation.".

"No enemy retaliation." indicates that it is the enemy creature that does not retaliate to an attack (supposedly).
But with "No retaliation." it is not clear. Who doesn't retaliate? The creature on its own?
This description is getting really borderline, but it can still be used.

The goal is not to make it as short as possible, but to make it short while remaining accurate. :)

Another possibility for Crusader:

  • "Undead Slayer."

@LeHerosInconnu
Copy link

Continuing in poetry. :D

Ghost:

  • "Soul Gatherer."

@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

Continuing in poetry. :D

Ghost:

  • "Soul Gatherer."

I like that one! How about "Soul Harvester"? The only problem with both is that they both sound like the ghosts only keep souls stored and don't convert or transform them into ghosts.

Also about No Retaliation, I have to admit that I did not think it could be interpreted two ways, but you raise a good point. I changed it to this also because this is the way this ability is called in English in Heroes 4, when it still was New World Computing. I see some descriptions in Heroes 3, like for cerberi, explain it like avoiding or evading retaliation. So maybe Avoid Retaliation or Evade Retaliation are not ambiguous?

Undead slayer sounds cool too.

@LeHerosInconnu
Copy link

Yes, "Soul Harvester." is even better. :)
And yes, this is still "imaged".

I don't have any idea about Retaliation yet.

@LeHerosInconnu
Copy link

Ghost:

  • "Ghost Harvester."

@ihhub
Copy link
Owner

ihhub commented Jun 14, 2021

As a person who is most likely to going to implement this very soon (1-2 days more) I'm taking a right to choose any version of descriptions :)

@LeHerosInconnu
Copy link

@ihhub:

  • "The Crusher." :D

@ihhub
Copy link
Owner

ihhub commented Jun 14, 2021

I mean it's just initial implementation, we could always polish descriptions and make them better!

@ihhub ihhub self-assigned this Jun 14, 2021
@ihhub ihhub modified the milestones: Beyond 1.0, 0.9.5 Jun 14, 2021
@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

As a person who is most likely to going to implement this very soon (1-2 days more) I'm taking a right to choose any version of descriptions :)

And I have no problem with that! Consider mine as just suggestions you can keep or toss as you feel.

Going back to the three-lines long Elementals, I suggest to save space you can change the "unaffected by moral" to Unmoral or Amoral, which according to how they are described here have the correct meanings for these pseudo non-sentient beings that don't have a moral perception. Even Morally Unaffected works but is longer.

Personally I might just prefer Branikolog's suggestion of saying that they are Elementals and having that signify that they are unaffected by moral and their other shared traits.

@Branikolog
Copy link
Collaborator

Continuing in poetry. :D
Ghost:

  • "Soul Gatherer."

I like that one! How about "Soul Harvester"? The only problem with both is that they both sound like the ghosts only keep souls stored and don't convert or transform them into ghosts.

Also about No Retaliation, I have to admit that I did not think it could be interpreted two ways, but you raise a good point. I changed it to this also because this is the way this ability is called in English in Heroes 4, when it still was New World Computing. I see some descriptions in Heroes 3, like for cerberi, explain it like avoiding or evading retaliation. So maybe Avoid Retaliation or Evade Retaliation are not ambiguous?

No enemy retaliation still is my #1 ;)

Considering ghosts - I'm 100% sure any player will remember, what does this description means, once he met ghosts before.

Even "Soul Eater" would be enough clear.)

What about "halving" ability for genies? Any "poetic" ideas ? :)

@ihhub
Copy link
Owner

ihhub commented Jun 14, 2021

@zenseii , @LeHerosInconnu and @Branikolog , if we can come out with a single most suitable solution in 1-2 days it would be perfect 🙂

@zenseii
Copy link
Collaborator

zenseii commented Jun 14, 2021

No enemy retaliation still is my nr.1 ;)

I don't disagree with this as long as there is enough space. As stated earlier, No enemy retaliation does remove any ambiguity. However I don't think there exists any creature that has the "ability" to never retaliate back when struck.

Considering ghosts - I'm 100% sure any player will remember, what does this description means, once he met ghosts before.

Even "Soul Eater" would be enough clear.)

I agree that these descriptions will mostly add flavor and serve to help new players remember what traits a creature has. Furthermore, Heroes 2 doesn't take itself very seriously which is why whimsical/comical descriptions are fine, in my opinion, of course. The pitfall of going for something comedic is that it can ruin an experience if done wrong (not everyone shares the same sense of humor).

Having said that, I think Soul Eater implies that the ghost consumes the souls of the creatures it kills, which is more in the territory of how the vampires work. I believe something like Soul Transformer, Ghost Transformer are more precise and gets the job done, though they are slightly bland and boring.

What about "halving" ability for genies? Any "poetic" ideas ? :)

Well, first we would need to imagine what happens in the game world when genies perform the mathematical operation of halving the number of the stack. I always felt it was more of a pure "game-logic" sort of attack than something that came natural to the game universe, but I might not have given it much thought.

I figure what they do is make half of an army "go poof" as a genie would be able to with his incredible magic. I could also imagine that the genies grant the wish for the player to make half his opponent's army disappear, occasionally.

So my best suggestion so far is:

Genies

  • Wish Granting (Occasionally)

For new players this leaves a sort of wonder of what sort of wishes are granted. However, the problem is that quite often you will be facing these genies as neutral armies and in that case it becomes a bit harder to imagine who is doing the wishing when they cut your stacks in half...

Maybe naming their occasional super-magic is easier, like:

Genies:

  • Genie's Wrath

A genuine name for it does, however, imply that this attack is actually referenced to as this name in the game, which it doesn't, and it also sort of ends up in slight fan-fiction terriroty of naming things in the game universe, which I'm personally not much of a fan of.

@ihhub
Copy link
Owner

ihhub commented Jun 15, 2021

Hi @zenseii , @Branikolog and @LeHerosInconnu , I'm attaching a text document which was generated from totally new code. Could you please verify all monster info even including flying ability or 2-hex size? This is very important as we have to be sure that we don't make a mistake. These changes are also needed for the future monsters addition.

monster.txt

@ihhub
Copy link
Owner

ihhub commented Jun 15, 2021

Few notes:

  • not all abilities will have description (like 2-hex monster or flyer)
  • Spell resitant abilities will be grouped if they have the same percentage
  • is Ghost undead?

@LeHerosInconnu
Copy link

Hello @ihhub,

So, if I haven't forgotten anything. :)

Hydra should have "No enemy retaliation".

Dragons should have "Double melee attack cell".

Archmage has "20% chance to cast Dispel Magic", note that only beneficial spells are removed, not negative ones.
(The Archmage has a 20% chance to dispel beneficial spells on targeted creatures.)

The Giant does not need to have "No melee penalty" because it is not a ranged unit.

Yes, Ghost is "Undead".

@zenseii
Copy link
Collaborator

zenseii commented Jun 15, 2021

@ihhub
Ghosts are indeed undead in the game. They give -1 morale to other troops in the army.

Comments to monster.txt:

  • Earth Elementals are immune to Meteor Shower, and in other words do not take 200% damage from it. So both Earth and Air Elementals are immune to Meteor Shower.

  • Earth Elementals are not immune to Elemental Storm. They take normal damage from it.

  • For all elementals it should be corrected to *Always neutral morale

  • For Hydras I think adjacent sounds more correct than around, which feels like it needs to be followed by an object/noun:

Hydra:
Attack all adjacent enemies

Instead of:

Attack all enemies around

  • Small correction:

Genies:
10% chance to halve enemy

Questions:

Will single and mass variants be joined? Like for example writing only:

100% Immunity to Curse

Instead of

100% Immunity to Curse
100% Immunity to Mass Curse

Small notes:

  • For the creatures who have a chance to inflict a spell together with their attack (Cyclopes, Unicorns, Magi, Medusas), I think it sounds weird to say that they have an X% chance to "cast" a spell, since they do not really cast the spell, but the effect comes from their attack, like a paralyzing attack.

  • In general I suggest to be consistent with capitalization of words. Either write Double Shot or Double shot. In the monster.txt it says:

Crusader:
Double damage to Undead

Archer Ranger
Double shot

Tested with Heroes 2 Gold version 2.1

@LeHerosInconnu
Copy link

LeHerosInconnu commented Jun 15, 2021

Hello @zenseii,

Comments to monster.txt:

  • Earth Elementals are immune to Meteor Shower, and in other words do not take 200% damage from it. So both Earth and Air Elementals are immune to Meteor Shower.
  • Earth Elementals are not immune to Elemental Storm. They take normal damage from it.

This is an "original" bug from Heroes 2. :)
Air and Earth Elementals, and Fire and Water Elementals should be opposite in their immunities and weaknesses.

  • For all elementals it should be corrected to *Always neutral morale

Correct.
Also the first letter of Morale can be capitalized here (see below).

  • For Hydras I think adjacent sounds more correct than around, which feels like it needs to be followed by an object/noun:

Hydra:
Attack all adjacent enemies

Instead of:

Attack all enemies around

Yes "adjacent" sounds better. Also there should be an "s" in "Attacks". Or: "Attack on all adjacent hexes". Or : "Attack on all hexes".

  • Small correction:

Genies:
10% chance to halve enemy

Correct.

Small notes:

  • For the creatures who have a chance to inflict a spell together with their attack (Cyclopes, Unicorns, Magi, Medusas), I think it sounds weird to say that they have an X% chance to "cast" a spell, since they do not really cast the spell, but the effect comes from their attack, like a paralyzing attack.

Yes, I think something like "20% ability to Paralyze" or "20% capacity to Paralyze" would be more appropriate.

  • In general I suggest to be consistent with capitalization of words. Either write Double Shot or Double shot. In the monster.txt it says:

Crusader:
Double damage to Undead

Archer
Double shot

I think it's okay to capitalize the name of a Creature or the name of a Spell or a type of creature like "Undead" here, it gives the reader some kind of extra information.
Also, the Archer does not have a double shot, only the Ranger. :)

I think these are the terms specific to the game engine, they will not be the description texts.

@zenseii
Copy link
Collaborator

zenseii commented Jun 15, 2021

@LeHerosInconnu
Thanks for clearing that up! I did sort of expect that the Elemental thing was a bug, since I saw these immunities and weaknesses reported the same everywhere on the web etc.

Anyways as for the choices on how to word things I know ihhub will land on something good in the end since there is not a lack of good suggestions.

@ihhub
Copy link
Owner

ihhub commented Jun 16, 2021

@zenseii and @LeHerosInconnu , thank you! I'll correct them. Are other statistics correct? Because all this information is written from scratch so I might made a mistake somewhere.

@zenseii
Copy link
Collaborator

zenseii commented Jun 16, 2021

@ihhub I checked all statistics up against heroesofmightandmagic.com and for necromancer and the neutral creatures I checked all of them up against Heroes2 Gold, and there were no differences. The only things I did not check were the neutral creature's base growth and cost. I could go back and check all creatures apart from necromancers up against Heroes 2 gold rather than that site.

@LeHerosInconnu
Copy link

Hello @ihhub,

I checked and all values seem to be correct.
The levels mentioned here seem more appropriate for neutral creatures.
Not sure about the growth values for neutral creatures, the values provided are from the Project Ironfist files.
How are these values used in fheroes2?

Rogue

  • Level: 1
  • growth="12"

Nomad

  • Level: 2
  • growth="4"

Ghost

  • Level: 3
  • growth="3"

Medusa

  • Level: 4
  • growth="5"

Air Elemental

  • Level: 4
  • growth="3"

Earth Elemental

  • Level: 4
  • growth="3"

Fire Elemental

  • Level: 4
  • growth="3"

Water Elemental

  • Level: 4
  • growth="3"

Genie

  • Level: 6
  • growth="2"

@ihhub
Copy link
Owner

ihhub commented Jun 16, 2021

Hi @LeHerosInconnu , I corrected neutral monster stats (growth is not used anywhere, except castle). Level is used for setting monster amount for random monsters at the start of map: 50, 30, 25, 25, 12, 8 monsters per level. Some creatures have their own unique values.

Also a build for testing will be ready very soon. Almost every creature have a proper description but elementals have the worst...

@LeHerosInconnu
Copy link

@ihhub

Okay, I'll take a look at it tomorrow, I have to move. :)

@ihhub
Copy link
Owner

ihhub commented Jun 17, 2021

Hi @zenseii , @LeHerosInconnu and @Branikolog , you could download Windows build from this pull request using this explanation. Not everything is the same as you proposed due to some development complexities. Please verify the changes and if they're good we could go with them. In the future we will polish monster's description.

Please note that I moved creature sprite 5 pixels to top to make 3 lines of description fit within the window. Also I made some changes in saves (saves older thna 0.9.3 won't work) as old monster related code was using monster data in saves. Not it doesn't.

@LeHerosInconnu
Copy link

LeHerosInconnu commented Jun 18, 2021

Hello @ihhub,

Some remarks after checking.

There are two Lightning spells, "Lightning Bolt" and "Chain Lightning".
Either the word "Bolt" can be replaced by the word "spells".
Or if there isn't enough room, simply write "200% damage from Lightning and Elemental Storm."
I think this is evocative enough for both Lightning spells.
Creature description 003

Same remark here.
"Immune to Lightning and Elemental Storm."
Creature description 004

For elementals, the term "Elemental." is a bit "bland".
The player will think: "I actually see that it's an Elemental."
Some thoughts:

  • "No Morale." with a capital "M" in Morale.
  • "No mood."

But this only takes into account the Morale and not the immunity to Mind spells.

When the description of the creature only needs one line, I suggest to write the text on the bottom line (location of the third line) rather than on the top line (not necessarily in this PR).
(Same when the description of the creature only needs two lines.)
Creature description 005

Maybe, when the description of the creature contains several sentences and each sentence can be written on one line, I suggest to do so (not necessarily in this PR).
In the example, with the Crusader:
(The text should remain center justified.)

"Double Strike.
Double damage to Undead.
Immune to Curse."
Creature description 006

Same remark here.
"20% chance to Paralyze.
Two hexes attack."
Creature description 007

Correction:
"Always retaliates." with an "s" in retaliates.
(It's the description of the creature (so one creature).)
(Or should we make a description according to the number of creatures in the troop, I think not.) :)
Creature description 008

Same remark here.
"Attacks all..." with an "s" in Attacks.
Creature description 009

Same remark here.
"Decreases..." with an "s" in Decreases.
Creature description 010

I think the word "Eater" should be spelled with a capital "E" here, to give it a bit of "depth".
"Soul Eater."
Creature description 011

@ihhub
Copy link
Owner

ihhub commented Jun 18, 2021

Hi @LeHerosInconnu , I addressed almost every comment of yours. Let's please create a separate topic if extra improvements are needed.

@LeHerosInconnu
Copy link

Hello @ihhub,

Even if the growth of neutral creatures is not yet used in fheroes2, I think it would be nice to have a basis for the future.
I think that the same growth as the Barbarian castle creatures (but with the well and horde building bonuses) should be adequate.
I can open a discussion if necessary.

Rogue

  • Level: 1
  • Growth: 20

Nomad

  • Level: 2
  • Growth: 10

Ghost

  • Level: 3
  • Growth: 7

Medusa

  • Level: 4
  • Growth: 6

Air Elemental

  • Level: 4
  • Growth: 6

Earth Elemental

  • Level: 4
  • Growth: 6

Fire Elemental

  • Level: 4
  • Growth: 6

Water Elemental

  • Level: 4
  • Growth: 6

Genie

  • Level: 6
  • Growth: 4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement New feature, request or improvement question Question asked ui UI/GUI related stuff
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants