Adjusting Events

Faustmouse

Deity
Joined
Jan 31, 2012
Messages
3,524
One thing that really bugs me in C2C is that Events are mostly useless in the mid to lategame. 52 Gold from selling wool is not that much in the Industrial Era...

I asked in the Event Thread before and I think it was DH said it would be possible that the gold is a function rather than a fixed number. Is this true?

If so, I propose that we use a function based on turns passed. My idea would be that the funktion is something like:

a*b*n^x

Where a is fixed 1,2 or 3 for cheap (burned forest), medium (burned factory) or expensive (oil desaster) event; b a fixed number that is defined somewhere so you could ajust all events at once and don't have to edit them one by one; x is the turn number and n is a parameter.

I want them to increase exponentially like ls612's building costs.

Also, what would be cool but optional, some techs should increase/decrese the income/costs of an event: Several techs could increase gold income (Explosives, Nanomining...), Animal Husbandry etc the income from wool sells etc...

At least the function stuff I'd really like to do, but I don't know how and also I have no idea about n or b, so you might want me to tell what which event should could at what time. And how to implent this.
I know it would be a lot of work to go through all events but I'm willing to do so once someone showed me how.
 
And could you scale up the yields from friendly goody huts/islands please:D. I'm in the 10th century AD and there are still islands out there to get. But a Stone Spearman, or 30 gold, is not much incentive. Whereas if they are unfriendly, two Triremes is at least a bit scaled for era. And the barb cities have Warlord Chiefs, Javelineers etc.

Sorry if that's technically off-topic...:blush:
 
One thing that really bugs me in C2C is that Events are mostly useless in the mid to lategame. 52 Gold from selling wool is not that much in the Industrial Era...

I asked in the Event Thread before and I think it was DH said it would be possible that the gold is a function rather than a fixed number. Is this true?

If so, I propose that we use a function based on turns passed. My idea would be that the funktion is something like:

a*b*n^x

Where a is fixed 1,2 or 3 for cheap (burned forest), medium (burned factory) or expensive (oil desaster) event; b a fixed number that is defined somewhere so you could ajust all events at once and don't have to edit them one by one; x is the turn number and n is a parameter.

I want them to increase exponentially like ls612's building costs.

Also, what would be cool but optional, some techs should increase/decrese the income/costs of an event: Several techs could increase gold income (Explosives, Nanomining...), Animal Husbandry etc the income from wool sells etc...

At least the function stuff I'd really like to do, but I don't know how and also I have no idea about n or b, so you might want me to tell what which event should could at what time. And how to implent this.
I know it would be a lot of work to go through all events but I'm willing to do so once someone showed me how.

You can use python to scale events better but it just confuses the AI. The way events are done a better solution may be to create multiple of the same event just for different eras or activating obsoleting at a series of techs.

We really do need to go through all the events for balance. Plus we need to do something about the quests that are far to infrequent. There is also a graphic related bug for some events and other events are not centering on the plot in question sometimes because there is no plot that matches the event. Then there are volcanoes which I seem to have stopped altogether rather than only restricting the messages.

And could you scale up the yields from friendly goody huts/islands please:D. I'm in the 10th century AD and there are still islands out there to get. But a Stone Spearman, or 30 gold, is not much incentive. Whereas if they are unfriendly, two Triremes is at least a bit scaled for era. And the barb cities have Warlord Chiefs, Javelineers etc.

Sorry if that's technically off-topic...:blush:

Theoretically these should be scaling for era just like the normal ones. I don't know why they aren't. I also don't know why my land units from islands fixes are not working. Kathy published a fix for the problem, it moves all land units on the plot to the nearest land plot, but that includes any units in a transport on the same plot.

Then of course there will be the problem crashed probes on the Moon and Mars giving stone throwers.
 
You can use python to scale events better but it just confuses the AI. The way events are done a better solution may be to create multiple of the same event just for different eras or activating obsoleting at a series of techs.

Why would it confuse the AI? Wouldn't they see just the gold at the end of the calculation process?

I also thought about multiple Events for each era, but wouldn't that create a lot of data?
 
Why would it confuse the AI? Wouldn't they see just the gold at the end of the calculation process?

I forgot that we can now have the value appear in the event now thanks to AIAndy.

I also thought about multiple Events for each era, but wouldn't that create a lot of data?

Yes but probably not too much processing time.
 
I forgot that we can now have the value appear in the event now thanks to AIAndy.

So it COULD be done, also usuable by the AI?
Would it be easy and repetitive work or is it quite difficult?
 
Then of course there will be the problem crashed probes on the Moon and Mars giving stone throwers.
I recently discovered the coding for all the results in the dll. This is fairly easily manipulated. But I'm almost thinking there could be an xml class developed for goody results that could give us a whole new world of modding potential. Once we get closer to this sort of thing needing to be sorted out, it'd be a good project to undertake I think.
 
I recently discovered the coding for all the results in the dll. This is fairly easily manipulated. But I'm almost thinking there could be an xml class developed for goody results that could give us a whole new world of modding potential. Once we get closer to this sort of thing needing to be sorted out, it'd be a good project to undertake I think.
There is an XML file for goody hut results. The possibilities in it are pretty limited though.

I forgot that we can now have the value appear in the event now thanks to AIAndy.
Mind that each value specifically has to be set to support this in the DLL by changing it to an Integer Expression.
 
There is an XML file for goody hut results. The possibilities in it are pretty limited though.

But for some reason the era specific is working for huts but not for islands. They stay as the prehistoric ones.

The results from huts are good (tech, map, unit(s) or money) or bad (barbarian units). What more do you want?
 
I've just solved this annoying issue by turning off the Random Events option in new games now. It is a shame I know, but until this gets fixed that is what I will be doing.
 
There is an XML file for goody hut results. The possibilities in it are pretty limited though.
Ah... goes to show how basic my glance over the code was there. So yeah, some additional functionality could be in order. I can see DH's struggle to make island goodies react appropriately being easily resolved in the code.
 
Ah... goes to show how basic my glance over the code was there. So yeah, some additional functionality could be in order. I can see DH's struggle to make island goodies react appropriately being easily resolved in the code.

In what way? Is it a fix for the problem that islands never advance in eras whereas the huts do? Is it the fact that there is only one set so I can't have one land set and another sea set? How will this affect the "Crashed Probes" which should not give techs or barbarians but everything else?
 
Filters can be assigned in the code that are dependent on booleans, unit lists, all sorts of manipulations could be possible here! Generating a full list of all ideas and fixes we'd like to implement would be a good first step to a Goody manipulation project. There really would be very little that couldn't fairly easily be accomplished there in code.

So your list right now:
1) Problem that islands never advance in eras - absolutely can be done but I think a lot of islands is done in python and in the best case scenario, much of that python should be converted (not necessarily the python that generates the islands itself) so that the results process through a more generic xml/dll driven method. Defining the plot the goody is on by domain would be a key in differentiating result possibilities. And XML in goody results to say, this happens for land results, this happens for sea results, would be instrumental in such a divide.

2) Crashed Probes: Era differentiations as result prerequisites would be driving here as well. Plus the we are obviously going to be needing a few extra domains: Space, Underwater to name a few and those would play in the same filtering as above).
 
Filters can be assigned in the code that are dependent on booleans, unit lists, all sorts of manipulations could be possible here! Generating a full list of all ideas and fixes we'd like to implement would be a good first step to a Goody manipulation project. There really would be very little that couldn't fairly easily be accomplished there in code.

So your list right now:
1) Problem that islands never advance in eras - absolutely can be done but I think a lot of islands is done in python and in the best case scenario, much of that python should be converted (not necessarily the python that generates the islands itself) so that the results process through a more generic xml/dll driven method. Defining the plot the goody is on by domain would be a key in differentiating result possibilities. And XML in goody results to say, this happens for land results, this happens for sea results, would be instrumental in such a divide.

2) Crashed Probes: Era differentiations as result prerequisites would be driving here as well. Plus the we are obviously going to be needing a few extra domains: Space, Underwater to name a few and those would play in the same filtering as above).

the only python for goody islands are:
1) Placement on the map - not in ice or in fresh water lakes. I think we may be able to get rid of that to.

2) Fix so that barbarian units are era appropriate ships.

the other stuff I was trying was to make era appropriate friendly units.
 
So yeah, those should be very doable with an xml tag that specifies the unit types (or an adjustment to how its already done anyhow), rather than python. I can put it on my list to address very soon.
 
Koshling suggested a while back, and I agree, that we should rewrite the event coding so that events independently evaluate for firing each round rather than 'events as a whole evaluate for firing - then if yes, we figure out which one among those we have can fire and the determine which does based on their likelihoods as measured against each other'.

I think until this is done, further work on events is probably going to be extraordinarily limited. We could probably thereafter work on providing some more functionality to event coding in general which could be helpful.
 
Koshling suggested a while back, and I agree, that we should rewrite the event coding so that events independently evaluate for firing each round rather than 'events as a whole evaluate for firing - then if yes, we figure out which one among those we have can fire and the determine which does based on their likelihoods as measured against each other'.

I think until this is done, further work on events is probably going to be extraordinarily limited. We could probably thereafter work on providing some more functionality to event coding in general which could be helpful.

That sounds very good :)
 
Back
Top Bottom