As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Caster of Magic II Bug Reports!

Chaos channelled minotaurs with 26 health got killed in one turn by a cracks call spell, but they are fantastic, so should have taken 21 damage instead.
Reply

I think Nature Omniscient is bugged. I created a wizard with 5 Nature books and Omniscient. Given the description, this should be + 3 population to all cities. However, in practice, some cities only have +2 population from the first Nature book. Example:

[Image: unknown.png]

[Image: unknown.png]

Note that this doesn't happen for all cities. Here's one that gets the expected +3 population:

[Image: unknown.png]

[Image: unknown.png]

I've attached saves before and after placing the settlers.


Attached Files
.zip   Omniscient saves.zip (Size: 79.23 KB / Downloads: 1)
Reply

Omniscient :
Not a bug. The surveyor calculates terrain value as is, disregarding the presence of shared tiles (the new city doesn't exist yet) while after building, shared tiles apply and reduce the maximal population.
Whether this results in a visible effect or not depends on the shared tiles and whether the difference is enough to push it below the previous integer value or not.

Crack's Call :
Not a bug. The spell effect is different from the DOS version and the 21 damage limit only applies to heroes and fantastic creatures.

Quote:Rends the earth. Any non-flying, corporeal creature standing over the newly created fissure has a 25% chance of falling inside, becoming irrecoverably destroyed unless their base type is a hero or fantastic unit in which case they take 21 irrecoverable damage instead. If there is a wall on the tile, it is destroyed.


B112. Intentional, the animation is used only for when the player researches a spell. It wasn't used for receiving a spell by trading or looting a wizard fortress even in the original so this is more consistent.
B113. Attack buffing effects only apply to attacks the unit already has. Unless the spell specifically says it "grants" a new type of attack like Focus Magic, it won't do so.
B114. Confirmed, this will be fixed in the next update by adding a visibility recalculation whenever the human player's turn starts after cities progress their production.
Reply

I am having several bugs with Mystic Surge:

A. (The most grief here) If a unit becomes undead it stays undead after battle. Many hammerhands and one hero I basically lost to this.
B. Sometimes the spell gives adamant weapons to a unit, the stay after battle.
C. If a caster hero becomes undead his spell book gets many death spells.
Reply

Another bug: Aether Flux does not affect costs of spells for heroes in battle.
Reply

(October 11th, 2022, 00:17)hackflow Wrote: I am having several bugs with Mystic Surge:

A. (The most grief here) If a unit becomes undead it stays undead after battle. Many hammerhands and one hero I basically lost to this.
B. Sometimes the spell gives adamant weapons to a unit, the stay after battle.
C. If a caster hero becomes undead his spell book gets many death spells.

Additionally, Mystic surge cast on an efreet results in an empty spellbook for it (and wouldn’t cast spells even if auto combat). I believe that healing prevention status causes it

Reply

(October 10th, 2022, 16:36)Seravy Wrote: B111. Intentional, the animation is used only for when the player researches a spell. It wasn't used for receiving a spell by trading or looting a wizard fortress even in the original so this is more consistent.
B113. Attack buffing effects only apply to attacks the unit already has. Unless the spell specifically says it "grants" a new type of attack like Focus Magic, it won't do so.

B111. OK, but I think it would increase immersion and fun to have animation since that is a rare and satisfying event. For spell trade the animation is not important, but would be nice too.
B113. Current text says "gains". Gain is defined as obtain. So it reads like that it would apply to even 0 (none). I recommend adding clarifying text that it only applies if unit already has >0 value. I suppose similar for Settlers if they have 0 attack, they would not get +2 attack either.
Reply

(October 13th, 2022, 23:09)WhiteMage Wrote:
(October 10th, 2022, 16:36)Seravy Wrote: B111. Intentional, the animation is used only for when the player researches a spell. It wasn't used for receiving a spell by trading or looting a wizard fortress even in the original so this is more consistent.
B113. Attack buffing effects only apply to attacks the unit already has. Unless the spell specifically says it "grants" a new type of attack like Focus Magic, it won't do so.

B111. OK, but I think it would increase immersion and fun to have animation since that is a rare and satisfying event. For spell trade the animation is not important, but would be nice too.
B113. Current text says "gains". Gain is defined as obtain. So it reads like that it would apply to even 0 (none). I recommend adding clarifying text that it only applies if unit already has >0 value. I suppose similar for Settlers if they have 0 attack, they would not get +2 attack either.

Agree to both suggestions by WhiteMage.
Reply

So, the game gets stuck when running this code in AICustomWizard.CAS. What it tries to do is raise the number of wizards permitted on Myrror regardless of what score modifiers are picked. Can someone figure out if there is a problem with this code, or if it's due to a bug?

Code:
MYRRAN=0;

IF (NOFWIZARDS()<4) THEN { MYRRAN=1; }
IF (NOFWIZARDS()>3) %AND (NOFWIZARDS()<7) THEN { MYRRAN=2; }
IF (NOFWIZARDS()>6) %AND (NOFWIZARDS()<10) THEN { MYRRAN=3; }
IF (NOFWIZARDS()>9) %AND (NOFWIZARDS()<13) THEN { MYRRAN=4; }
IF (NOFWIZARDS()>12) THEN { MYRRAN=5; }

IF ((RETORT(0,Myrran))=0) THEN {
IF (W>((NOFWIZARDS())-MYRRAN)) %AND ((RETORT(W,Myrran))=0) THEN {
  SETRETORT(W,Myrran,1);
  IF (TEMPLATE=1) THEN {
   SETBOOK(W,Nature,(BOOKS(W,Nature)-1));
  }
  IF (TEMPLATE=2) THEN {
   SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)-1));
  }
  IF (TEMPLATE=3) THEN {
   SETBOOK(W,Chaos,(BOOKS(W,Chaos)-1));
  }
  IF (TEMPLATE=4) THEN {
   SETBOOK(W,Life,(BOOKS(W,Life)-1));
  }
  IF (TEMPLATE=5) THEN {
   SETBOOK(W,Death,(BOOKS(W,Death)-1));
  }
  IF (TEMPLATE=6) THEN {
   IF ((BOOKS(W,Nature))>(BOOKS(W,Sorcery))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)-1));
   } ELSE { SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)-1)); }
  }
  IF (TEMPLATE=7) THEN {
   IF ((BOOKS(W,Nature))>(BOOKS(W,Chaos))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)-1));
   } ELSE { SETBOOK(W,Chaos,(BOOKS(W,Chaos)-1)); }
  }
  IF (TEMPLATE=8) THEN {
   IF ((BOOKS(W,Nature))>(BOOKS(W,Life))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)-1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)-1)); }
  }
  IF (TEMPLATE=9) THEN {
   IF ((BOOKS(W,Nature))>(BOOKS(W,Death))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)-1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)-1)); }
  }
  IF (TEMPLATE=10) THEN {
   IF ((BOOKS(W,Sorcery))>(BOOKS(W,Chaos))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)-1));
   } ELSE { SETBOOK(W,Chaos,(BOOKS(W,Chaos)-1)); }
  }
  IF (TEMPLATE=11) THEN {
   IF ((BOOKS(W,Sorcery))>(BOOKS(W,Life))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)-1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)-1)); }
  }
  IF (TEMPLATE=12) THEN {
   IF ((BOOKS(W,Sorcery))>(BOOKS(W,Death))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)-1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)-1)); }
  }
  IF (TEMPLATE=13) THEN {
   IF ((BOOKS(W,Chaos))>(BOOKS(W,Life))) THEN {
    SETBOOK(W,Chaos,(BOOKS(W,Chaos)-1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)-1)); }
  }
  IF (TEMPLATE=14) THEN {
   IF ((BOOKS(W,Chaos))>(BOOKS(W,Death))) THEN {
    SETBOOK(W,Chaos,(BOOKS(W,Chaos)-1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)-1)); }
  }
  IF (TEMPLATE=15) THEN {
   IF ((BOOKS(W,Life))>(BOOKS(W,Death))) THEN {
    SETBOOK(W,Life,(BOOKS(W,Life)-1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)-1)); }
  }
}
} ELSE {
IF (W>0) %AND (W<=(MYRRAN+1)) %AND ((RETORT(W,Myrran))=1) THEN {
  SETRETORT(W,Myrran,0);
  IF (TEMPLATE=1) THEN {
   SETBOOK(W,Nature,(BOOKS(W,Nature)+1));
  }
  IF (TEMPLATE=2) THEN {
   SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)+1));
  }
  IF (TEMPLATE=3) THEN {
   SETBOOK(W,Chaos,(BOOKS(W,Chaos)+1));
  }
  IF (TEMPLATE=4) THEN {
   SETBOOK(W,Life,(BOOKS(W,Life)+1));
  }
  IF (TEMPLATE=5) THEN {
   SETBOOK(W,Death,(BOOKS(W,Death)+1));
  }
  IF (TEMPLATE=6) THEN {
   IF ((BOOKS(W,Nature))<(BOOKS(W,Sorcery))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)+1));
   } ELSE { SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)+1)); }
  }
  IF (TEMPLATE=7) THEN {
   IF ((BOOKS(W,Nature))<(BOOKS(W,Chaos))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)+1));
   } ELSE { SETBOOK(W,Chaos,(BOOKS(W,Chaos)+1)); }
  }
  IF (TEMPLATE=8) THEN {
   IF ((BOOKS(W,Nature))<(BOOKS(W,Life))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)+1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)+1)); }
  }
  IF (TEMPLATE=9) THEN {
   IF ((BOOKS(W,Nature))<(BOOKS(W,Death))) THEN {
    SETBOOK(W,Nature,(BOOKS(W,Nature)+1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)+1)); }
  }
  IF (TEMPLATE=10) THEN {
   IF ((BOOKS(W,Sorcery))<(BOOKS(W,Chaos))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)+1));
   } ELSE { SETBOOK(W,Chaos,(BOOKS(W,Chaos)+1)); }
  }
  IF (TEMPLATE=11) THEN {
   IF ((BOOKS(W,Sorcery))<(BOOKS(W,Life))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)+1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)+1)); }
  }
  IF (TEMPLATE=12) THEN {
   IF ((BOOKS(W,Sorcery))<(BOOKS(W,Death))) THEN {
    SETBOOK(W,Sorcery,(BOOKS(W,Sorcery)+1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)+1)); }
  }
  IF (TEMPLATE=13) THEN {
   IF ((BOOKS(W,Chaos))<(BOOKS(W,Life))) THEN {
    SETBOOK(W,Chaos,(BOOKS(W,Chaos)+1));
   } ELSE { SETBOOK(W,Life,(BOOKS(W,Life)+1)); }
  }
  IF (TEMPLATE=14) THEN {
   IF ((BOOKS(W,Chaos))<(BOOKS(W,Death))) THEN {
    SETBOOK(W,Chaos,(BOOKS(W,Chaos)+1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)+1)); }
  }
  IF (TEMPLATE=15) THEN {
   IF ((BOOKS(W,Life))<(BOOKS(W,Death))) THEN {
    SETBOOK(W,Life,(BOOKS(W,Life)+1));
   } ELSE { SETBOOK(W,Death,(BOOKS(W,Death)+1)); }
  }
}
}
Reply

One problem... you need to set reroll to zero so that the return value is set.
Reply



Forum Jump: