Soylent: Difference between revisions
Adding note on Industrial Plants |
EvilRenegade (talk | contribs) m Replacing Template:TTL with Template:F. |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
|default=[[Soylent#Default|see below]] | |default=[[Soylent#Default|see below]] | ||
|types={{Categ|Technoes}} | |types={{Categ|Technoes}} | ||
|ts=yes | <!-- |ts=yes | ||
|fs=yes | |fs=yes | ||
|ets=yes | |ets=yes // DC: not in the executable, who added this? --> | ||
|ra2=yes | |ra2=yes | ||
|yr=yes | |yr=yes | ||
Line 14: | Line 14: | ||
==Default== | ==Default== | ||
{{ | {{f|Soylent|link}} doesn't have a default value as such (internally it is zero) but it is often said to be "half the cost". A unit's ''refund amount'' is actually calculated as follows: | ||
*If {{ | *If {{f|Soylent|link}} is non-zero then {{f|Soylent|link}} is used as the refund amount. | ||
*If {{ | *If {{f|Soylent|link}} is zero (i.e. not set) then the refund amount is taken to be:<br>the unit's {{f|Cost|link}} * (applicable [[Country_Statistics#VeteranXXX and YYYZZZMult=|country-specific cost multiplier]] for that unit type) * (applicable [[FactoryPlant|Industrial Plant]] multipliers for that unit type){{fnl|1}}.<br>In the case of human players only (another example of the AI 'cheating'), this refund amount is then further multiplied by [{{f|General|link}}]{{arr|r}}{{f|RefundPercent|50%|link}} | ||
{{SourceCode|http://dc.strategy-x.com/src2/TechnoTypeClass/GetRefund.cpp}} | {{SourceCode|http://dc.strategy-x.com/src2/TechnoTypeClass/GetRefund.cpp}} | ||
{{fn|1|Note that since this multiplier is used at refund time, it will result in the same value as if you were purchasing that unit right now, not the value that was actually paid for the unit at its construction time, which results in [[#exploit2|another potential exploit]].}} | {{fn|1|Note that since this multiplier is used at refund time, it will result in the same value as if you were purchasing that unit right now, not the value that was actually paid for the unit at its construction time, which results in [[#exploit2|another potential exploit]].}} | ||
{{Bugs}}As indicated above, any unit that has a non-zero {{ | {{Bugs}} | ||
=== When {{Tt|Soylent}} is specified === | |||
As indicated above, any unit that has a non-zero {{f|Soylent|link}} will use that value as its refund amount and ignore the normal refund logic. This means that any unit that has been discounted due to country-specific multipliers or [[FactoryPlant|Industrial Plants]] will not reimburse the player by the correct amount when sold or sent to a [[Grinding|Grinder]]. In the unmodded game this is noticeable when grinding [[VehicleTypes]]. The game's designers decided that [[VehicleTypes]] should have 100% refund rather than the default 50%, and the developers implemented this by simply setting all [[VehicleTypes]]' {{f|Soylent|link}} to match the {{f|Cost|link}} (rather than appropriately modifying the refund logic). | |||
<span id="exploit1">The</span> | <span id="exploit1">The result of this</span> is that, when a player owns both a [[Grinding|Grinder]] and an [[FactoryPlant|Industrial Plant]], the player can generate free money by immediately grinding any [[VehicleType]] they build. One generally accepted work-around to this problem is to set the Soylent for all units to match the multiplier(s) offered by the [[FactoryPlant|Industrial Plant]] and not to include any country-specific multipliers (this does decrease the amount of income Yuri players get from grinding enemy units, although some actually see this as an improvement to balance). | ||
<span id="exploit2"> | === When {{Tt|Soylent}} is not specified === | ||
<span id="exploit2">In this case</span>, a potential exploit stems from the fact that the Industrial Plant bonus is applied at refund time - if you build units while you have a [[Grinding|Grinder]] as well as [[FactoryPlant|Industrial Plant(s)]], and then lose the Industrial Plant bonuses, you will be refunded half of the full cost by the Grinder, instead of half of the cost you purchased it for.<br> | |||
'''Example:'''<br> | |||
A unit usually costs 1000 credits.<br> | |||
You have an Industrial Plant, and get the unit for 800 instead.<br> | |||
Without {{Tt|Soylent}} on the unit, you should now get 400 credits back if you grind the unit.<br> | |||
''But'' if you lose your Industrial Plant, the Grinder will instead refund you half of the ''normal'' price of the unit - which is 1000/2 = 500 credits. 100 more than you were entitled to. | |||
==Trivia== | ==Trivia== |
Latest revision as of 08:33, 27 November 2009
Flag: | Soylent |
File(s): | rules(md).ini |
Values: | Integer |
Default: | see below |
Applicable to: | TechnoTypes:
AircraftTypes, BuildingTypes, InfantryTypes and VehicleTypes |
This flag sets the refund value for the unit when it is sold at a Service Depot (not in Yuri's Revenge, unless a mod has included the Sell Unit super weapon) or sent to a Grinder (Yuri's Revenge only), or the building when it is sold using the Sell button from the sidebar.
Default
Soylent doesn't have a default value as such (internally it is zero) but it is often said to be "half the cost". A unit's refund amount is actually calculated as follows:
- If Soylent is non-zero then Soylent is used as the refund amount.
- If Soylent is zero (i.e. not set) then the refund amount is taken to be:
the unit's Cost * (applicable country-specific cost multiplier for that unit type) * (applicable Industrial Plant multipliers for that unit type)1.
In the case of human players only (another example of the AI 'cheating'), this refund amount is then further multiplied by [General]→RefundPercent=50%
Relevant pseudocode is available at http://dc.strategy-x.com/src2/TechnoTypeClass/GetRefund.cpp.
1 ↑ Note that since this multiplier is used at refund time, it will result in the same value as if you were purchasing that unit right now, not the value that was actually paid for the unit at its construction time, which results in another potential exploit.
Bugs/Side-Effects/Unexpected Limitations
When Soylent is specified
As indicated above, any unit that has a non-zero Soylent will use that value as its refund amount and ignore the normal refund logic. This means that any unit that has been discounted due to country-specific multipliers or Industrial Plants will not reimburse the player by the correct amount when sold or sent to a Grinder. In the unmodded game this is noticeable when grinding VehicleTypes. The game's designers decided that VehicleTypes should have 100% refund rather than the default 50%, and the developers implemented this by simply setting all VehicleTypes' Soylent to match the Cost (rather than appropriately modifying the refund logic).
The result of this is that, when a player owns both a Grinder and an Industrial Plant, the player can generate free money by immediately grinding any VehicleType they build. One generally accepted work-around to this problem is to set the Soylent for all units to match the multiplier(s) offered by the Industrial Plant and not to include any country-specific multipliers (this does decrease the amount of income Yuri players get from grinding enemy units, although some actually see this as an improvement to balance).
When Soylent is not specified
In this case, a potential exploit stems from the fact that the Industrial Plant bonus is applied at refund time - if you build units while you have a Grinder as well as Industrial Plant(s), and then lose the Industrial Plant bonuses, you will be refunded half of the full cost by the Grinder, instead of half of the cost you purchased it for.
Example:
A unit usually costs 1000 credits.
You have an Industrial Plant, and get the unit for 800 instead.
Without Soylent on the unit, you should now get 400 credits back if you grind the unit.
But if you lose your Industrial Plant, the Grinder will instead refund you half of the normal price of the unit - which is 1000/2 = 500 credits. 100 more than you were entitled to.
Trivia
The name of the flag ("Soylent") is a reference to the 1973 film Soylent Green (IMDB/Wikipedia) starring Charlton Heston.
Another reference to this can be found in-game during the Yuri's Revenge Allied mission 'Hollywood In Vain'. The captured civilians can be heard saying "Soylent green for Yuri" as they march to the Grinders.