Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
Sprites are still overpowered

(March 11th, 2017, 05:06)MrBiscuits Wrote: Probably a stupid suggestion, but might it be possible for ground troops to hit flyers with a much reduced change of hitting? Say each sword has a 10% change of hitting, then the total hits would count as a normal attack from that point. 

That way weak flyers can't be exploited to kill massively more powerful units like great wyrms with no danger to them whatsoever.

You're onto something there, though I'd live with a concept of attacking flyers if it followed a different format:

A melee unit tries swinging/swiping/scratching at a flying unit, likely dodging away. If we translate this to Master of Magic:
*ground melee unit with no ranged abilities does a melee attack at a flying unit
*a random number generator of 1 to 3 rolls
*If '3' hits (33% chance), a normal melee process between the 2 take place as if ground to ground
*If '1' or '2' hits (67% chance), nothing happens (no attack/no retaliation), animation could happen without sound.

How would it affect gameplay?
*ground unit AI may not run away from flying ranged, may pursue
*if flying ranged units like sprites, you may potentially lose a unit as it may not dodge forever
*if flying melee units, occasional retaliations may occur, but unit generally will melee at player's control.
*In short, flying still holds a strong advantage, but there's a small chance hits may take place.

Reply

I already stated I'm not going to nerf flying. Especially not destroying completely like this. The whole point is being able to not get attacked AT ALL. Balance is important, but overdoing it results in a horrible, unfun game and this is one of those cases. Flying is one of the most fun and unique aspects of the game.

"*if flying ranged units like sprites, you may potentially lose a unit as it may not dodge forever"
A combat lasts 25 turns. Enemies might even have superior numbers. If fast enough they might even attack more than once a turn. But even with just 25 attacks, a 1/3 chance to kill a unit is a 99.996039% chance to kill the unit.
Reply

Erm I guess my point was - if sprites are already plenty strong for what the AI does with them, like early attacks across continents, and the human can abuse them, why do we need to make them stronger? Yes the human can abuse them, but making them stronger won't help that - neither by making it harder for humans to kill them when that's all the ai has in their capital nor by taking nodes.
Reply

(March 12th, 2017, 18:50)Nelphine Wrote: Erm I guess my point was - if sprites are already plenty strong for what the AI does with them, like early attacks across continents, and the human can abuse them, why do we need to make them stronger? Yes the human can abuse them, but making them stronger won't help that - neither by making it harder for humans to kill them when that's all the ai has in their capital nor by taking nodes.

Things aren't black and white. The proposed unit is significantly weaker at nodes and stronger in generic combat at the same time. The complaint was the unit was too strong against nodes, no one said they were too strong against wizards (Yes, stacking 3 retorts to get 9 of them in the first year works, so does doing the same with hell hounds, bears, ghouls, even nagas. Any stack of 9 common units can take out a capital with only 4 ghouls defending it.)
Enemies in nodes tend to have lower figure count with higher armor and health per figure - a strength 7 immolation attack won't hurt them much, and a strength 2 attack won't do damage to them at all.

Sprites are far from "plenty strong" for the AI, they are merely adequate. They fill the role of a flying ranged intercontinental harassing unit perfectly - but they are no real threat to any prepared player unless they arrive in stacks of 9 on impossible. They are strong as garrison units in capitals - but only because at high numbers, getting the first turn(s) allow them to annihilate a lot of enemy units - especially with backup from fortress lightning - and 9 flying units in one battle is hard to counter in the early game - web is single target and casting skill is limited.

(the change will make sprites ultra-scary in the hand of the AI though - far more than harassment, an actual threat. At 2 hit points per figure, most commons spells will no longer kill them effectively.)
Reply

I agree that Flying should not be nerfed. It's a perfectly good mechanism, the only problem is early access to Flying and a potent ranged attack. I also agree that Sprites are not plenty strong for the AI, I rarely see them as much of an obstacle.

But you're still wrong that you can accomplish as much with other early units. Do I need to set up more test games? Sprites produce massively better results.
Reply

(March 13th, 2017, 00:19)Catwalk Wrote: But you're still wrong that you can accomplish as much with other early units. Do I need to set up more test games? Sprites produce massively better results.

No, what I need is the data on how much treasure sprites gather. I've already made my calculator but you seem to want to make your own so I'll wait for that, it'll be more accurate than mine.
I also need some estimated amount of total treasure where we draw the line of "overpowered" preferably before we know the results.
Reply

Sorry, I think I misunderstood. I need a data set from you with the following info for each lair:

1) Defenders
2) Treasure
3) Node status
4) Distance from capital

Is that doable? Regardless of that, the fact remains that it is impossible to get the same impressive results with other units.
Reply

(March 13th, 2017, 07:03)Catwalk Wrote: Sorry, I think I misunderstood. I need a data set from you with the following info for each lair:

1) Defenders
2) Treasure
3) Node status
4) Distance from capital

Is that doable? Regardless of that, the fact remains that it is impossible to get the same impressive results with other units.

You go into "New game", start one, save, and the data is in the save files.
My aim is to make a tool that evaluates the data - using the saves as input directly. If you are unhappy with my algorithm of counting the treasure, tell me how to modify it and I'll do that.
I've attached the current source code.

Code:
program sprites;
const nofmons = 16;
     mons : array[1..nofmons] of byte=
     (155, { Hell Hounds }
      158, { Fire Elemental }
      159, { Chaos Spawn }
      165, { Skeleton }
      168, { Werewolves }
      174, { Zombies }
      175, { Unicorns }
      176, { Guardian Spirit }
      179, { War Bears }
      180, { Sprites }
      181, { Cockatrices }
      189, { Great Wyrm }
      191, { Phantom Beast }
      192, { Phantom Warriors }
      197,0);  { Nagas }
var f : file of byte;
   a,b,c : byte;
   tre : longint;
   ttr : longint;
   p,x,y : byte;
   i,j,k : integer;
function getlairbyte(x,y : integer) : byte;
var a : byte;
begin
seek(f,$6628+$18*x+y);
read(f,a);
getlairbyte:=a;
end;
begin
ttr:=0;
for i:=1 to 8 do begin
assign(f,'sp'+chr(i+ord('0'))+'.gam');
reset(f);
writeln('Opening file #',i);
tre:=0;

seek(f,$8AAC+$F);
read(f,x,y,p);

for j:=0 to 100 do
if Getlairbyte(j,3)=1 then
if (abs(y-Getlairbyte(j,1))<=15)
and ((abs(x-Getlairbyte(j,0))<=15) or (abs(x-Getlairbyte(j,0))>=45))
and (p=Getlairbyte(j,2))
then begin { lair in range }

a:=Getlairbyte(j,5);

for k:=1 to nofmons do if a=mons[k] then a:=99;

b:=Getlairbyte(j,7);

for k:=1 to nofmons do if b=mons[k] then b:=99;

if (a=99) and (b=99) then begin

tre:=tre+getlairbyte(j,$A)+256*getlairbyte(j,$B);
tre:=tre+getlairbyte(j,$C)+256*getlairbyte(j,$D);

a:=getlairbyte(j,$10);

if a>0 then for k:=1 to a do tre:=tre+((getlairbyte(j,$10+k*2)+256*getlairbyte(j,$11+k*2)) div 2);

writeln('Available treasure :', tre);
if getlairbyte(j,4)<=3 then begin writeln('Node or tower, +500'); tre:=tre+500;end;
ttr:=ttr+tre;tre:=0;
end;
end;
end;
writeln('Average total treasure :',ttr div 8);

end.


It's a simple one - any place with only monsters on the list at ANY quantity is counted if it's no further than 15 tiles from the starting location on the same plane.
I can add details like a second list of monsters that only count if there are fewer than a specified amount of them, or anything else you want.

If you really only want raw data, I can also make it output the raw data from save files instead of processing it, but in this case I need to know what kind of format you need.
Reply

I think my method will produce much more accurate results, and it shouldn't take me long.
The format is the one above. For each lair, I need the following:

1) Defenders
2) Treasure
3) Node status
4) Distance from capital

I need it in a format that I can import into Excel.
Reply

(March 13th, 2017, 10:47)Catwalk Wrote: I think my method will produce much more accurate results, and it shouldn't take me long.
The format is the one above. For each lair, I need the following:

1) Defenders
2) Treasure
3) Node status
4) Distance from capital

I need it in a format that I can import into Excel.

Done. Each row in the output is one lair/node/tower.
Each column contains this information in this order :
Distance Monster1ID Monster1Amount Monster2ID Monster2Amount Gold Mana Special HERO Item1Value Item2Value Item3Value Node/Tower/Lair

Item values are unadjusted, so you get only half as many mana crystals if you break them.
Special is 1-4 for common to very rare spells, 5 for 1 book/retort, 6 for 2 books/retorts.
Hero is 1 if there is a hero, 0 if there is not. Higher values mean you already scouted that lair.
Only your own plane is listed, whichever that one is. Already cleared lairs are excluded. Use turn 1 save files without RVL.
You specify the input save game file when you run the tool. The output goes into a DATA.TXT file.


.zip   LAIR.zip (Size: 3.85 KB / Downloads: 0)

btw, is there any reason why harmless ASM and PAS files are not allowed in attachments, yet we can attach ZIP and EXE files? Strange logic.
Reply



Forum Jump: