Posted: Thu Feb 22, 2007 11:39 am
Thanks, Killer Wolf, for both suggestions!
The idea of linking the reduction of legal status to an increase of credits IN_FLIGHT is very clever. I like it! And easily scriptable. So there is only one question: How much reward for each kill? Of course it would be only logical to bind it to the bounty itself: Lots of bounty -> dangerous felon -> big reward. Small bounty -> small fish -> small reward. Now the range of bounties AFAIK is from 1 (little offender) to 2000 (thargoid carrier). So perhaps you get a reduction of your legal status of let's say 1/100 of the bounty. That way you could also add the rewards if you blow up several targets at the same time (e.g. with an energy bomb). Even better would it be logarithmical, because the thargoid carrier bounty is really a bit out of scale. Only problem is: In scripts you can't do divisions (or multiplications, for that matter), only "add: mission_variable <value>". Have to give it some more thoughts, but in principle: Yes. EDIT: I would work fine with also having some levels only.
As for the price of the Multipass, also YES, it can be more flexible, by putting only a base price to the equipment screen and then calculating "running costs" when it is fitted. By having a base price of zero it could fully depend on the player's legal status. Two drawbacks: I wouldn't like a price of zero displayed on the equipment screen, so it would have to have a base price not too low. And again, easy calculation of the final price is limited by having no multiplication. Basically it would require a lot of conditions in the script: If legalStatus_number = 255 then addMoney: -25500, reset: legalStatus_number. If legalStatus_number = 254 then addMoney: -25400, reset: legalStatus_number. If legalStatus_number = 253 then addMoney: -25300, reset: legalStatus_number... You get the idea. It would be much easier with a loop-structure: If legalStatus_number > 0 then addMoney: -100, add: legalStatus_number -1. Do it again. Very few lines of code. But loops are not implemented in the scripting language we use for Oolite (not to my knowledge, that is). And as long as these lots of conditions are needed it is better to limit their number by having a few levels only.
The idea of linking the reduction of legal status to an increase of credits IN_FLIGHT is very clever. I like it! And easily scriptable. So there is only one question: How much reward for each kill? Of course it would be only logical to bind it to the bounty itself: Lots of bounty -> dangerous felon -> big reward. Small bounty -> small fish -> small reward. Now the range of bounties AFAIK is from 1 (little offender) to 2000 (thargoid carrier). So perhaps you get a reduction of your legal status of let's say 1/100 of the bounty. That way you could also add the rewards if you blow up several targets at the same time (e.g. with an energy bomb). Even better would it be logarithmical, because the thargoid carrier bounty is really a bit out of scale. Only problem is: In scripts you can't do divisions (or multiplications, for that matter), only "add: mission_variable <value>". Have to give it some more thoughts, but in principle: Yes. EDIT: I would work fine with also having some levels only.
As for the price of the Multipass, also YES, it can be more flexible, by putting only a base price to the equipment screen and then calculating "running costs" when it is fitted. By having a base price of zero it could fully depend on the player's legal status. Two drawbacks: I wouldn't like a price of zero displayed on the equipment screen, so it would have to have a base price not too low. And again, easy calculation of the final price is limited by having no multiplication. Basically it would require a lot of conditions in the script: If legalStatus_number = 255 then addMoney: -25500, reset: legalStatus_number. If legalStatus_number = 254 then addMoney: -25400, reset: legalStatus_number. If legalStatus_number = 253 then addMoney: -25300, reset: legalStatus_number... You get the idea. It would be much easier with a loop-structure: If legalStatus_number > 0 then addMoney: -100, add: legalStatus_number -1. Do it again. Very few lines of code. But loops are not implemented in the scripting language we use for Oolite (not to my knowledge, that is). And as long as these lots of conditions are needed it is better to limit their number by having a few levels only.