ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

Difference between revisions of "Soylent"

From ModEnc
Jump to: navigation, search
(rewrite)
(Adding note on Industrial Plants)
Line 16: Line 16:
 
{{TTL|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:
 
{{TTL|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 {{TTL|Soylent}} is non-zero then {{TTL|Soylent}} is taken to be the refund amount.
 
*If {{TTL|Soylent}} is non-zero then {{TTL|Soylent}} is taken to be the refund amount.
*If {{TTL|Soylent}} is zero (i.e. not set) then the refund amount is taken to be:<br>the unit's {{TTL|Cost}} * (applicable [[Country_Statistics#VeteranXXX and YYYZZZMult=|country-specific cost multiplier]] for that unit type) * (applicable [[FactoryPlant|Industrial Plant]] multipliers for that unit type).<br>In the case of human players only (another example of the AI 'cheating'), this refund amount is then further multiplied by [{{TTL|General}}]{{arr|r}}{{TTL|RefundPercent|50%}}
+
*If {{TTL|Soylent}} is zero (i.e. not set) then the refund amount is taken to be:<br>the unit's {{TTL|Cost}} * (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 [{{TTL|General}}]{{arr|r}}{{TTL|RefundPercent|50%}}
 
{{SourceCode|http://dc.strategy-x.com/src2/TechnoTypeClass/GetRefund.cpp}}
 
{{SourceCode|http://dc.strategy-x.com/src2/TechnoTypeClass/GetRefund.cpp}}
  
{{Bugs}}As indicated above, any unit that has a non-zero {{TTL|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 [[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]]' {{TTL|Soylent}} to match the {{TTL|Cost}} (rather than appropriately modifying the refund logic). The result of this 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).
+
{{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 {{TTL|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 [[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]]' {{TTL|Soylent}} to match the {{TTL|Cost}} (rather than appropriately modifying the refund logic).  
 +
 
 +
<span id="exploit1">The</span> result of this 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">Another</span> possible 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 get a refund for its full cost, even though you actually purchased the unit for a different amount.
  
 
==Trivia==
 
==Trivia==

Revision as of 07:34, 8 June 2008

Tiberian Dawn The Covert Operations Red Alert Counterstrike Aftermath Tiberian Sun Firestorm HyperPatch Red Alert 2 Yuri's Revenge Ares Generals Zero Hour Tiberium Wars Kane's Wrath
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

Template:TTL 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:

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.

Cc alert.png Bugs/Side-Effects/Unexpected Limitations

As indicated above, any unit that has a non-zero Template:TTL 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' Template:TTL to match the Template:TTL (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).

Another possible 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 get a refund for its full cost, even though you actually purchased the unit for a different amount.

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.