Hi,
This is a little (actually by the look of the size of the subroutine probably not that little ) request for one of the code gurus to take a look at subroutine 44F42C (aka monster_system_attack - I hope), if they feel in the mood for torturing their mind for a few hours
I have taken a look at it, but with almost no assembler knowledge I cant really work out what is going on (there are no usefull helping comments that I can see but then again, I could be looking at the wrong window inside IDA pro).
What I would like to be able to do seems fairly simple, and one part of it I can already do, so read on below...
1) Ensure that whenever a monster event happens, the same monster type is always spawned (This I can already do thanks to SCT's work, so basically I can always spawn a borg cube if I want to).
2) Limit the ammount of damage a borg cube does to a system. Basically, rather than wipe out the system, it would be better if it could assimilate say 50mil pop, potentialy create a new cube and then continue on its way (leaving the system to be able to recover).
So point 1 is done, point 2 is the 'would be nice' if someone can find the time at some point in the future.
I just wanted this post out there and in the collective concious as it were, there is no rush for it or anything, its just something to think about
Thanks as ever,
C.
Borg System Attacks..
Moderator: thunderchero
IGNORE WRONG INFO SORRY
looking at the code c.
asm_44f802 seems to be a test with 0x14 i.e 20
and
asm_44f809 seems to set a value to 9 (the min borg deat amount) it is the only valueset to 9 in the subroutine.
if you want to make the borg less deadly might try 0x14 -> FF (255 max) and
0x09 -> 19 (25 thus 11 turns to distroy system)
this is very much speculation on my part and i would throngly recomend backing up your files before you try it. I have mad no attempt to test this either.
looking at the code c.
asm_44f802 seems to be a test with 0x14 i.e 20
and
asm_44f809 seems to set a value to 9 (the min borg deat amount) it is the only valueset to 9 in the subroutine.
if you want to make the borg less deadly might try 0x14 -> FF (255 max) and
0x09 -> 19 (25 thus 11 turns to distroy system)
this is very much speculation on my part and i would throngly recomend backing up your files before you try it. I have mad no attempt to test this either.
Last edited by Peter1981 on Wed May 19, 2010 4:19 pm, edited 1 time in total.
The multipliers can be found at 0x176FA0
They are doubles (8 byte floating point numbers):
0.15, 0.3, 0.5, 1.25
I haven't searched for the limits but the first one is likely used if the system has a certain size, when the pop drops the second is used and when there's minimum population before extinction, the last one is used.
Make the last one 0 and the population shouldn't ever get killed completely, but the cube won't go away either.
They are doubles (8 byte floating point numbers):
0.15, 0.3, 0.5, 1.25
I haven't searched for the limits but the first one is likely used if the system has a certain size, when the pop drops the second is used and when there's minimum population before extinction, the last one is used.
Make the last one 0 and the population shouldn't ever get killed completely, but the cube won't go away either.
- Spocks-cuddly-tribble
- Code Master
- Posts: 1884
- Joined: Sun Apr 27, 2008 2:00 am
Almost there. Those are multipliers for population loss (if not minimum check/code -> post by Peter1981) for Tarellian, Crystal Entity & Borg Cube. Last one is borg multiplier for block cube check (see my posts).DCER wrote:0.15, 0.3, 0.5, 1.25
I haven't searched for the limits but the first one is likely used if the system has a certain size, when the pop drops the second is used and when there's minimum population before extinction, the last one is used.
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.