Logo Platform
logo amplifiers simplified

Need help with Tower of Temporal Paradox

Reply
Copied to clipboard!
7 years ago
Dec 8, 2017, 1:32:04 PM

Oh god, this is embarassing. How could I forget to change the name of RuntimeModule? 

<RuntimeModule Name="KaizenWorkflows" Type="Extension" Version="1.0.0">

This should've beed first thing that I had to think about, but I was so captured by my ideas I went directly to simulation and completely forgot about it.

Of course the game sees only one of them in the order of which folders appear, so when they called KaizenOffice and KaizenWorkflows it's Office appearing, and when it's KaizenOffice and 1129577679 it's latter because of alphabetical order.

Please, have these two humble offerings here: KaizenOffice.zip, KaizenWorkflows.zip

0Send private message
7 years ago
Dec 7, 2017, 1:13:48 PM

Well, it does (in context of calculations indeed Drone Networks add +10 Industry only 1 time, and Distributed Energy adds 10% one time), and it doesn't - how Dust is different in the colony than Industry? Don't we have 

same thing - a composition of values? Same goes for other FIDSI, the only difference in them is icon, color and the name from what I saw in Simulation.

And can you please do me a big favor and take a look in KaizenWorkflows mentioned earlier to get the idea of what effect I was saying previously?


Updated 7 years ago.
0Send private message
7 years ago
Dec 7, 2017, 2:17:49 PM

I think I understood what you meant: 

Let's say we have 100 industry and 10% bonus (which "ticks" for +10%/turn) and there are no more improvements built, no more population growth etc.
2nd turn: it would be 110 industry with absolute value of bonus added of +10

3rd turn: 120 industry with +10 +10
4th: 130 with +10 +10 +10 and so on because the only thing that changes is that "tick" of resource that tracks turn number.


So, lets say we built HippoZoo on 3rd turn that adds 50 industry, if I understood you correctly what we would have will be: 

start: 100 industry

2nd turn: 110 industry with +10 from bonus and 100 basic

3rd turn: 170 industry with +10, +10 from bonus and +50 from HippoZoo and 100 basic

this means, that on the 4th turn the absolute value of bonus added would be 10% of 150 (base+HippoZoo but not from KaizenOffice because of what you said) === 15 and we would have
4th: 185 industry with +10, +10, +15 from bonus and +50 HippoZoo and 100 basic 

and from 4th turn on the absolute value of bonus added would be 15 because sum of the values that compose industry are 150 (100 basic and 50 HippoZoo). Which will still indeed be equal to those "famous" 10%.
Please correct me if I'm wrong.

Updated 7 years ago.
0Send private message
0Send private message
7 years ago
Dec 7, 2017, 3:48:31 PM

Oh, forgive me if I was too annoying or pushy. Please consider my thread as an ask for favor which you could assist in when you have time, it's not like I make requests with deadlines or something like that. Honestly, the rate of which you answer already surpassed my wildest expectations and I would've been happy with 1 post in 1-2 days. Of course, I would like to thank you wholeheartedly for all your attention and support, it is really helpful, I have much better understanding of how things work now than couple of days ago. Have a good time.

0Send private message
0Send private message
7 years ago
Dec 8, 2017, 11:17:33 AM

Hey, I wanted to check the other mod you sent me, KaizenWorkflows, but unpacking the archive in my folder doesn't make it appear in the mods menu in-game (KaizenOffice appears, though)

Could you double-check your file?

Updated 7 years ago.
0Send private message
7 years ago
Dec 8, 2017, 11:36:55 AM

This is very strange but I experience same thing. I made this mod and published it on September 7 Kaizen Workflows on Steam . Recently I had to re-install my system so what I did I just went to Steam\steamapps\workshop\content\392110\1129577679 (this is where mod is downloaded by Steam) and copied the contents of it to the Community folder - and somehow right now it's not appearing anymore so I can't even update it. Have no idea what this is about.


EDIT: the mod itself (on the "Workshop" tab in MODS in main menu appears and works perfectly)

Updated 7 years ago.
0Send private message
7 years ago
Dec 8, 2017, 12:02:55 PM

So, well, here's the thing - if I copy entire folder from Steam\steamapps\workshop\content\392110\ and don't touch it's name 1129577679 - the mod begins to appear at "Local" tab in Main Menu -> MODS. So I provide it here 1129577679.zip . But the moment I rename it manually to KaizenWorkflows it disappears. Just what the hell is going on there.. 

0Send private message
7 years ago
Dec 8, 2017, 1:16:28 PM

I haven't looked yet but I think there's something weird going on with Kaizen Office because now, I have Kaizen Wrokflows but Kaizen Office disappeared so you should check if they don't conflict due to something you'd have forgotten to change? (I presume you started Kaizen Office from a copy of Workflows or something, but I could be wrong haha)

0Send private message
7 years ago
Dec 7, 2017, 1:05:45 PM

Your logic would work for tangible resources that can be stocked, like Dust, because you stock it and proc on it on the next turn.

Industry is simply a composition of values. So if I have 100 Industry then I build a +20 Industry building, I have 120. If I end the turn without adding anything else, I will still have 120 next turn, not 140.

Same goes for percentages: if I have 100 and add a building that adds +50% I will have 150. Next turn, I will still have +50% so 150 and not 225.


Does that make any sense to you? :)


0Send private message
7 years ago
Dec 8, 2017, 2:21:27 PM

I had a minute so I took a quick look at it: from what I've seen the whole issue seems to revolve around the fact that Kaizen Workflows "externalizes" its permanent effect since it needs to stay when you remove the thing from the queue.

However, I think Office only procs the effects "internally".


Have you tried having a Property on the System and not on the Building that is incremented by the effect of the Building and then applied to the System Industry?


Something like that:

Then you'd have to find a way to reset the stocked increase value if you scrap the Improvement so it stops affecting your system but having it work the way you want would already be a nice first step.

0Send private message
7 years ago
Dec 9, 2017, 1:22:28 PM

I reworked the mod and tried a couple of things. Copied descriptor of ColonizedStarSystemStateColony and modified it by:

<!-- KaizenOffice BEGIN -->
<!-- Properties -->

<Property Name="KaizenOfficeSystemProductionStock" IsSealed="true"/>
<Property Name="NetKaizenOfficeSystemProduction" />
<!-- Modifiers -->
<Modifier TargetProperty="NetSystemProduction" Operation="Addition" Value="$(KaizenOfficeSystemProductionStock)" Priority="15" />
<Modifier TargetProperty="KaizenOfficeTransferredProduction" Operation="Addition" Value="$(SystemProduction)" Priority="14" Path="ClassColonizedStarSystem/StarSystemImprovementKaizenOffice"/>
<!-- KaizenOffice END -->

So there is KaizenOfficeSystemProduction - an "externilized" Property, which is then modified by:

<SimulationDescriptor Name="StarSystemImprovementKaizenOffice" Type="StarSystemImprovement">
<Property Name="MinimumKaizenOffice" BaseValue="0"/>
<Property Name="KaizenOfficeTickStock" BaseValue="0"/>
<Property Name="NetKaizenOfficeTick" BaseValue="1"/>
<Property Name="KaizenOfficeTransferredProduction" />

<!-- Expected: +100 +200 +300 +400 etc directly modifying SystemProduction  -->
<!-- Actual: +100 +200 +300 +400  -->
<!-- <BinaryModifier TargetProperty="SystemProduction" Operation="Addition" Left="100" BinaryOperation="Multiplication" Right="$(KaizenOfficeTickStock)" Path="./ClassColonizedStarSystem" /> -->

<!-- Expected: +100 +300 +600 +1000 etc SystemProduction is modified by "external" KaizenOfficeSystemProduction which is affected by Tick adding +100 every turn -->
<!-- Actual: +100 +300 +600 +1000  -->
<!-- <BinaryModifier TargetProperty="NetKaizenOfficeSystemProduction" Operation="Addition" Left="100" BinaryOperation="Multiplication" Right="$(KaizenOfficeTickStock)" Path="./ClassColonizedStarSystem" /> -->

<!-- doesn't work at all unless BaseValue for NetKaizenOfficeSystemProduction is specified, obviously because Percent needs it -->
<!-- <BinaryModifier TargetProperty="NetKaizenOfficeSystemProduction" Operation="Percent" Left="1" BinaryOperation="Multiplication" Right="$(KaizenOfficeTickStock)" Path="./ClassColonizedStarSystem" /> -->


<!-- on Sophons default 34 Industry system: +34 +68 +102 - somehow KaizenOfficeTransferredProduction is equal to $(SystemProduction) without itself, even is it's externilized -->
<BinaryModifier TargetProperty="NetKaizenOfficeSystemProduction" Operation="Addition" Left="1" BinaryOperation="Multiplication" Right="$(KaizenOfficeTransferredProduction)" Path="./ClassColonizedStarSystem" />

</SimulationDescriptor>

As you can see, there are a couple of "experiments" I made for testing - you could uncomment each one to see for yourself if you wish (only one should be in use however).

So the results are: if there is externalized stocked value (NetKaizenOfficeSystemProduction in this case) which is increased by KaizenOfficeTick  then the rate of SystemProduction increase grows every turn indeed (2nd example). However, when I try to transfer SystemProduction value to KaizenOfficeTransferredProduction and use latter to increase NetKaizenOfficeSystemProduction that is used then to increase SystemProduction again, the rate of increase doesn't grow (4th, uncommented example). Question is:  according to my thinking SystemProduction should contain value of KaizenOfficeSystemProductionStock, this means that transferred value also should contain it effectively increasing NetKaizenOfficeSystemProduction completing the self-affecting cycle, but somehow it's not like that; is this me thinking wrong?

I guess providing full code wouldn't hurt in case it's needed? KaizenOffice.zip

EDIT: typos. Have a nice weekend :)

Updated 7 years ago.
0Send private message
7 years ago
Dec 11, 2017, 9:43:11 AM

From what I can tell, it's NetKaizenOfficeSystemProduction that remains at 43 (the Industry my System had at turn 1)

I'm wondering if it's not an "intended" behavior to prevent loopd in the Simulation and other neverending cycles.


I'll investigate the Infinite Improvement in Kaizen Workflows, see how it works.


Edit: from what I see, it seems to work relatively the same, so it might be simply that Infinite Improvements are processed differently..? 

Also, you probably don't care at this point but pointing out that Kaizen Office is missing a prerequisite so it can only be built once in a system.


On another game I tried, it appeared it didn't work at all which seems really odd so I'm deleting the mod and reinstalling it.


Edit2: Apparently, having this Kaizen Workflows activated breaks Kaizen Office, causing the latter to have no effect..?

Updated 7 years ago.
0Send private message
7 years ago
Dec 11, 2017, 10:07:05 AM

So, is this the final verdict: I can't make identical effect of KW on a constructed building (KO) and should stick to previous variations without overwriting descriptors etc.?

Also, ofc I do care, but there wasn't the need to add prerequisites and balanced cost (it costs only 1 production to construcs atm) if the whole thing doesn't work :D

0Send private message
7 years ago
Dec 11, 2017, 10:51:25 AM

You can't have KW and KO activated at the same time, because they both overwrite ColonizedStarSystemStateColony descriptor, so one cancels the other. This was an issue back in the days with other mods that overwrite same descriptor

0Send private message
7 years ago
Dec 11, 2017, 11:22:35 AM

I should have said "you don't care *yet*" ^^


It's not a final verdict. I wouldn't claim to be enough of an expert to be adamant on the fact there's no alternative solution.

However, you might want to stick with a scope you know you can do with the time you have on your hands and do something a tad less ambitious but which works well, polished and debugged.


However, I don't want to discourage you from attempting to get the results you want! It's always good to try something new and learn by doing!


Cheers!

0Send private message
7 years ago
Dec 11, 2017, 11:42:33 AM

Thanks a lot for all your help. I guess at this point I'll have to disappoint the person requested specific variation of KW because of all these problems, but it was very interesting and insightful, I probably will make some other stuff with what I learned in the process. Thanks again for all your time, attention and support. 

0Send private message
0Send private message
7 years ago
Dec 7, 2017, 8:52:22 AM

Normally you can work on the ColonizedStarSystem, which is either the ClassColonizedStarSystem Descriptor or ColonizedStarSystemStateColony Descriptor depending on your needs.

In this case I reckon both could work.


Looking quickly at the XML, I realized that what we commonly use to affect the Industry of a System is the Property SystemProduction, maybe you should try that instead of the NetSystemProduction.

Updated 7 years ago.
0Send private message
7 years ago
Dec 5, 2017, 2:36:09 PM

Hey :)


I've taken a quick look into this and here's what I've found:


NetDustOverTime is the Property whose value controls the amount of Dust gained per turn. It is affected by the GameSpeedTimeMultiplier on the Empire.

DustOverTimeStock is what is actually added to the System Dust. 


If you look at the path in the Empire you will see that it uses ClassEmpire/ClassColonizedStarSystem/StarSystemImprovementUniqueTimeLords which means the Properties you're looking for are found on the improvement within a System. Maybe your path was incorrect?


I also notice that the Resource DustOverTime can be found in ResourceDefinitions.xml and has a location pointing to the improvement itself:

LocationPath="ClassEmpire/ClassColonizedStarSystem/StarSystemImprovementUniqueTimeLords"/>

So you might want it experiment with that too, since a Resource can have multiple LocationPath.


I hope this helps you somehow!

If you have more questions don't hesitate I'll try my best to answer them.


Cheers,

0Send private message
7 years ago
Dec 5, 2017, 5:42:08 PM

@WeaponizedCaffeine


Thank you for your response. May I ask a favor of explaining what


<SimulationDescriptor Name="BuildingStarSystemImprovementUniqueTimeLords" Type="BuildingStarSystemImprovement"/>

and

<QueuedSimulationDescriptorReference Name="BuildingStarSystemImprovementUniqueTimeLords"/>

are needed for?

0Send private message
7 years ago
Dec 6, 2017, 9:19:35 AM

I think that BuildingStarSystemImprovementUniqueTimeLords is a descriptor that is used to tag when an Improvement is being built, useful for preventing Unique Improvements from being queued in multiple Systems.


QueuedSimulationDescriptorReference is used to apply the SimulationDescriptor when the Improvement is queued, that is the checked here:

<InterpreterPrerequisite Inverted="true"    Flags="Prerequisite,Discard">Path(Context,@'../ClassEmpire/ClassStarSystem,BuildingStarSystemImprovementUniqueTimeLords') and not(Path(Context,@'ClassStarSystem,BuildingStarSystemImprovementUniqueTimeLords'))</InterpreterPrerequisite>

Does that make sense? :)

0Send private message
7 years ago
Dec 6, 2017, 11:50:21 AM

@WeaponizedCaffeine


It perfectly does, thank you. My first problem was indeed with wrong path inside my resource. I didn't really saw any description in the tutorial that "QueuedSimulationDescriptorReference" used for queue, I assume I had to understand that from the context (but it was somewhat hard for me, honestly). Is there a way where someone who is not the dev can get that kind of information (and about other properties/descriptors/mechanics, like that the game understands adding "Net" to the property name will be used to increase the value of that property)? Maybe I'm missing something, or using mod tutorial in the wrong way? 


Anyway, what I did now is: 

I have SimulationDescriptors.xml with

<SimulationDescriptor Name="StarSystemImprovementKaizenOffice" Type="StarSystemImprovement">
  <Property Name="MinimumKaizenOfficeIndustry" BaseValue="0"/>
  <Property Name="KaizenOfficeIndustryStock" />
  <Property Name="NetKaizenOfficeIndustry" BaseValue="1"/>
  <BinaryModifier TargetProperty="SystemProduction"              Operation="Addition" Left="0"   BinaryOperation="Addition"  Right="$(KaizenOfficeIndustryStock)" Path="./ClassColonizedStarSystem"  />
</SimulationDescriptor>

StarSystemImprovements.xml with

<StarSystemImprovementDefinition Name="StarSystemImprovementKaizenOffice">
<SupervisorGain Name="Industry"       Weight="3"  />
<Cost ResourceName="SystemProduction">1</Cost>
<SimulationDescriptorReference Name="StarSystemImprovementKaizenOffice" />
</StarSystemImprovementDefinition>

and ResourceDefinitions.xml with

<ResourceDefinition Name="KaizenOfficeIndustry" Type="Common">
<ResourceLocation Name="KaizenOfficeIndustry" LocationPath="ClassEmpire/ClassColonizedStarSystem/StarSystemImprovementKaizenOffice"/>
</ResourceDefinition>

So, what it does right now is: improvement is built and starts adding +1 industry to the system per turn beginning from the next turn as expected (so I'm very grateful for your previous help). 


What I'm trying to achieve now is that that increase would be equal to the 1% of the current system production. I added BinaryModifier to the NetKaizenOfficeIndustry  inside SimulationDescriptors.xml and changed it's BaseValue to "0" like this: 

<SimulationDescriptor Name="StarSystemImprovementKaizenOffice" Type="StarSystemImprovement">
<Property Name="MinimumKaizenOfficeIndustry" BaseValue="0"/>
<Property Name="KaizenOfficeIndustryStock" />
<Property Name="NetKaizenOfficeIndustry" BaseValue="0"/>
<BinaryModifier TargetProperty="NetKaizenOfficeIndustry" Operation="Addition" Left="0.01" BinaryOperation="Multiplication" Right="$(NetSystemProduction)" />
<BinaryModifier TargetProperty="SystemProduction"              Operation="Addition" Left="0"   BinaryOperation="Addition"  Right="$(KaizenOfficeIndustryStock)" Path="./ClassColonizedStarSystem"  />
</SimulationDescriptor>

But it doesn't work. I clearly do something wrong, probably it's again has something to do with location paths. What I think my addition does is: Get value of system industry NetSystemProduction, multiply it by 0.01 to get 1% and then add to NetKaizenOfficeIndustry, and the other calculations occur (KaizenOfficeIndustryStock is increased by new NetKaizenOfficeIndustry, after what it's added to the system industry SystemProduction). I think I don't need to provide Path here because NetKaizenOfficeIndustry is located inside StarSystemImprovementKaizenOffice. So, may I ask for your help once again?


0Send private message
7 years ago
Dec 6, 2017, 1:27:45 PM

Oh I'm glad to hear you've suceeded in making this first step work! Always happy to help!


Unfortunately the documentation for the simulation is, let's face it, pretty lackluster. The thing is nobody has the time (and very few have the knowledge) to make a detailed, exhaustive documentation for it.

I basically learnt the Simulation by getting my hands dirty and asking the simulation-guru Meedoc every time I encountered something I did not understand. (Truth be told, I bothered him a lot in the early days ^^)


For the problem at hand, maybe I'm misunderstanding the effect you're trying to put together, but wouldn't it be simpler to use Operation="Percent"  in a regular Modifier?

In any case, I could be wrong but I think your attempt (green BinaryModifier, right?) is not working because you are using a TargetProperty="NetKaizenOfficeIndustry" that's indeed found in the current context but you're trying to but use $(NetSystemProduction) which is a value that does not exist in the context but in the ClassColonizedStarSystem .


Keep me posted!


Updated 7 years ago.
0Send private message
7 years ago
Dec 6, 2017, 2:43:05 PM

What I'm trying to do is to get improvement that gets you +1% of total system industry at first turn, +2% at second, +3% at third and so on (the amount gained increaes every turn). So I guess I need to get NetKaizenOfficeIndustry to increase by 1% of SystemProduction (not sure if I need to use that or NetSystemProduction can't really tell the difference of two). That can be done by Percent operation or by Multiplication in BinaryModifier (I'm using the latter).  However I - exactly what you told - need to get $(NetSystemProduction) acknowledged by the BinaryModifier, but I don't know how to do it, because Path only refers to TargetProperty (which is NetKaizenOfficeIndustry), not the property in the Right="(NetSystemProduction)".  Is there a way to get that value to be understandable by the BinaryModifier? 


EDIT: Or maybe there is a way to make BaseValue equal to percentage? 

Updated 7 years ago.
0Send private message
7 years ago
Dec 6, 2017, 4:35:13 PM

The problem you're facing is something that is annoying for us too when writing data for the game on the regular.

The thing is there's no magical keyword to fetch a something that's neither in the context nor at the end of the path.


It's hard for me to try and help without really having it on my computer, the Simulation Archmage Meedoc might have a secret black magic spell for that but for now you'll have to make do ^^


In your example:

<BinaryModifier TargetProperty="NetKaizenOfficeIndustry" Operation="Addition" Left="0.01" BinaryOperation="Multiplication" Right="$(NetSystemProduction)" />

The TargetProperty is on the context but one of the Operation Values is on the System.

I think youcould use an intermediate Property, such as:


Add a Property in your current context, for example <Property Name="KaisenOfficeIndustryNetSystemProduction" />

Add a Modifier on the ColonizedStarSystem that transfer the value of NetSystemProduction to KaisenOfficeIndustryNetSystemProduction

Use KaisenOfficeIndustryNetSystemProduction in your BinaryModifier since it's a value that's part of the context


If values are off during testing, it might be because of Priority orders like the NetSystemProduction is transferred before everything is computed in it, so make sure that everything is done in order by tweaking the Priority of your operations (a lower Priority value means it's taken into account first)


I hope this helps you :)



0Send private message
7 years ago
Dec 6, 2017, 6:29:50 PM

I assume what you refer to as "ColonizedStarSystem" are 

<SimulationDescriptor Name="ColonizedStarSystemStateColony" Type="ColonizedStarSystemState">

for all races except Vodyani and

<SimulationDescriptor Name="ClassMothership" Type="ClassMothership">

for Vodyani?

In that case I guess I should copypaste entire descriptors and then add somewhere new modifiers because mod will overwrite both descriptors?


EDIT:

Thought about what you said with "Percent" Operation, came up with this: 

<SimulationDescriptor Name="StarSystemImprovementKaizenOffice" Type="StarSystemImprovement">
<Property Name="MinimumKaizenOfficeIndustry" BaseValue="0"/>
<Property Name="KaizenOfficeIndustryStock" BaseValue="0"/>
<Property Name="NetKaizenOfficeIndustry" BaseValue="1"/>
<Modifier TargetProperty="NetSystemProduction" Operation="Percent" Value="$(KaizenOfficeIndustryStock)" Path="./ClassColonizedStarSystem" Priority="100"/>
</SimulationDescriptor>

I am aware, that the way I put it, it increases by 100%, not by 1%, that coefficient will be changed (made it to see how the numbers behave). So, problem with this is, first turn everything is OK, but the next turns value added is the same what it was at the first turn, but it shouldn't be that way, it should increase because KaizenOfficeIndustryStock increases.

What i mean - with example - I have system with 34 industry. What I expect: 34 on 1st turn, 68 (34+34) on 2nd, 136 (34+34+68) on 3rd, 272 (34+34+68+136) on 4th and so on - I expect the increasing value to growth. What I actually have is that value added is 34 every time - it doesn't increase, as if it is not aware of KaizenOfficeIndustryStock after first iteration. EDIT2: or it's not aware that NetSystemProduction is increased as if value it's using is what it was upon construction.

Updated 7 years ago.
0Send private message
7 years ago
Dec 3, 2017, 8:09:48 PM


Can somebody (maybe devs if they're so kind) explain in detail how does the code for Tower of Temporal Paradox (riftborn unique dust improvement) work? What I'm interested in is making similar improvements for other FIDSI that can be built and still have passive increasing bonus, not behave themselves as queue blockers. I wasn't able (probably because of my insufficient skill level) to reproduce the effect even when I copied all code changing (renaming) only corresponding name pairs, it just added dust bonus one time upon construction, while vanilla improvement kept it's bonus growing every turn. Maybe it has something to do with 


<Property Name="DustOverTimeCount"/>

but I have zero clue about it, saw it only one time in entire Simulation folder.

I think I understand the idea behind such code (did mod Kaizen Workflows), but failed to achieve passive increasing bonus on 1-time constructed building and need help with that.

Any help is appreciated.



0Send private message
7 years ago
Dec 7, 2017, 9:25:58 AM

I guess overwriting those descriptors would make other mods that do the same incompatible? 

Moving from NetSystemProduction to SystemProduction didn't change the behavior, everything works the same way (this is why earlier I said "can't really tell the difference between the two"). However, what I noticed - when I build Drone Networks (improvement that adds +10 food +10 industry) Kaizen Office (name of my improvement) begins to add +44 instead of +34 earlier, and same thing goes when population increases; so my guess is KaizenOfficeIndustryStock keeps "ticking", but the value of increase updates only if SystemProduction actually changes by other sources, as if SystemProduction is not "aware" that it was changed by Kaizen Office. 

0Send private message
7 years ago
Dec 7, 2017, 9:43:16 AM

It's weird I see, you've even added a Priority of 100. I'd have blamed the Priority for such a behavior.

Maybe it could be the way you transfer the value of the System Industry from the System to your improvement (so you have the Industry in the context) that is incorrect?


0Send private message
7 years ago
Dec 7, 2017, 9:50:18 AM

Should've post my previously updated code here, my bad, sorry. This is what I experimented on:

<SimulationDescriptor Name="StarSystemImprovementKaizenOffice" Type="StarSystemImprovement">
<Property Name="MinimumKaizenOfficeIndustry" BaseValue="0"/>
<Property Name="KaizenOfficeIndustryStock" BaseValue="0"/>
<Property Name="NetKaizenOfficeIndustry" BaseValue="1"/>
<Modifier TargetProperty="SystemProduction" Operation="Percent" Value="$(KaizenOfficeIndustryStock)" Path="./ClassColonizedStarSystem"/>
</SimulationDescriptor>

I tried to use Percent based on my resource stock to get rid of transfering SystemProdution to my improvement context in the first place, to avoid descriptor overwriting. As you can see the Priority isn't even there. 

EDIT: so the idea behind is - my resource keeps track of turn number (you may say that), and SystemProduction builds upon itself using Percent and that turn number. Current coefficient is 100% increase, (value of Percent = 1) that would be changed to 1% (value of Percent = 0.01) later.

EDIT2: adding Priority didn't change a thing. 

Updated 7 years ago.
0Send private message
7 years ago
Dec 7, 2017, 10:52:14 AM

It's hard to tell what's wrong from where I'm standing. If your mod is otherwise functional, you could send it over and I could try to pass it in our Simulation Debugger.

0Send private message
0Send private message
7 years ago
Dec 7, 2017, 11:47:13 AM

Okay from what I can tell everything is working fine.

Every turn, the multiplier is increased by 100 (100%, 200%, 300% etc...)

If I have 100 Industry and a +100% bonus I'll have 200 Industry and 300 next turn

If I build something else and have 200 Industry with the same +100% I end up with a correct value of 400 and 600 next turn.

From my very basic tests I noticed that Kaizen Office increases Industry by (Sum of everything in the tooltip)*(100%*NbTurn)


Now Ithink I understand what you meant by 

my guess is KaizenOfficeIndustryStock keeps "ticking", but the value of increase updates only if SystemProduction actually changes by other sources, as if SystemProduction is not "aware" that it was changed by Kaizen Office. 


However I observed it to change over turns even when I didn't build anything else.

This is normal, though: the System Industry, as hinted by the tooltip , is a composition of various sources. So your Kaizen "source" just applies a percent on the value. I'm not sure it's going to help you understand but imagine it as some sort of sticker you put on a value. If what's written on the sticker changes, the value below it does too but removing the sticker has its whole effect disappear even after 3 turns have passed.


From my end I don't see any issue with it, so I'm still a bit confused regarding what is the intended effect.

0Send private message
7 years ago
Dec 7, 2017, 12:10:08 PM

Perhaps this is me thinking in the absolutely wrong way and I guess then the code is working fine, but.

As you said 

Every turn, the multiplier is increased by 100 (100%, 200%, 300% etc...)

If I have 100 Industry and a +100% bonus I'll have 200 Industry and 300 next turn

Shouldn't it be 400 at the "next turn"? My logic goes somth like this - we have basic 100 industry, which is multiplied by 100% and added, so we have 200 industry at 2nd turn; then (what I think and try to get) we have 200 industry multiplied by 100% and added - so we have 400 industry on the 3rd turn, which is multiplied by 100% and added - so we have 800 industry on the forth turn. 


It adds 100 industry every time which equals to 100% of industry of the first turn, but at the second turn that 100% would equal to 200 already. This is weird explanation of what I told earlier about "it's not aware that value has changed".


I would achieve an effect like compound interest in bank, like geometrical progression - only in example we have 100% coefficient and I would like to have it 1%.

Total industry of the system this turn = 1.01 * Total industry of the system last turn.


What we have now (with my "great" lol-code) I guess is more like arithmetic progression which I guess is working fine the way you debugged and showed it.

But this is entirely not what I would like to get. 


EDIT: the greatest confusion for me is why on the third turn we have +100 industry increase (from 200 to 300) if the value from which we get 100% is equal to 200 and it should be 200 + 200 = 400.

Updated 7 years ago.
0Send private message
7 years ago
Dec 7, 2017, 12:30:19 PM

If this helps, I can show you the effect I need - KaizenWorkflows.zip

This is my mod made a couple of month ago. What I would like to achieve is the same effect on FIDSI (nevermind happiness and resource boost), but on built improvement and not on queue blocker.


Sorry if I bother you too much.

Updated 7 years ago.
0Send private message
?

Click here to login

Reply
Comment