Forbidding the purchase of an upgrade after another specific upgrade has been purchased
#1
Posted 28 April 2012 - 02:09 PM
I have a question that troubles me : I'm working on some coding right now, which aims to offer the player a few "choices" in the pruchase of technology. But I can't find which codes would do it. For exemple, I added to a porter's commandset two buttons, each one related to an upgrade (more money or more defense to make it simple). What I'd like to do, is that when I purchase one of them, then the other grays out (not sure if it's the word in english). I've tried with the "ConflictsWith = Upgrade_X" code, but it doesn't work. I could tie it to an upgraded commandset, but I'm sure there must be a simplier way. If anyone has it, I'd be glad to know!
Thank you.
#2
Posted 28 April 2012 - 02:18 PM
Behavior = RemoveUpgradeUpgrade Remove_Upgrades_trolololol TriggeredBy = Upgrade_somethingsomthin UpgradeToRemove = Upgrade_something End
#3
Posted 28 April 2012 - 02:42 PM
;----------------------------------------- Grant Upgrade Behavior = GrantUpgradeCreate ModuleTag_WeStartWithoutUpgrades UpgradeToGrant = Upgrade_SpartanGerousiaNoFocus End ;----------------------------------------- Harvest Behavior = ObjectCreationUpgrade ModuleTag_SpartanFocusHarvest_Removes TriggeredBy = Upgrade_SpartanGerousiaFocusHarvest RemoveUpgrade = Upgrade_SpartanGerousiaNoFocus GrantUpgrade = Upgrade_SpartanGerousiaHaveFocus End Behavior = AttributeModifierAuraUpdate ModuleTag_SpartanFocusHarvest StartsActive = No TriggeredBy = Upgrade_SpartanGerousiaFocusHarvest Upgrade_SpartanGerousiaHaveFocus RequiresAllTriggers = Yes BonusName = SpartaGerousiaFocusHarvest RefreshDelay = 2000 Range = 99999999 ObjectFilter = ANY -STRUCTURE -INFANTRY -CAVALRY -HERO +SpartanFarm +SpartanFarmMultiplayer +SpartanFarmInterface End ;----------------------------------------- Warfare Behavior = ObjectCreationUpgrade ModuleTag_SpartanFocusWarfare_Removes TriggeredBy = Upgrade_SpartanGerousiaFocusWarfare RemoveUpgrade = Upgrade_SpartanGerousiaNoFocus GrantUpgrade = Upgrade_SpartanGerousiaHaveFocus End Behavior = AttributeModifierAuraUpdate ModuleTag_SpartanFocusWarfare StartsActive = No TriggeredBy = Upgrade_SpartanGerousiaFocusWarfare Upgrade_SpartanGerousiaHaveFocus RequiresAllTriggers = Yes BonusName = SpartaGerousiaFocusWarfare RefreshDelay = 2000 Range = 99999999 ObjectFilter = ANY -STRUCTURE -INFANTRY -CAVALRY -HERO +SpartaBarracks End
Basically, you have to grant the object a starter upgrade from the start, that kinda tells you that it haven't chosen anything yet. Then, when you purchace one of the alternatives, you get it's respective upgrade, but it also removes the I-have-nothing upgrade and grants an I-have-upgrade-now upgrade. That's how you get the ability you want to work (more money or defence), it needs both the More money\defence upgrade AND the upgrade that says I-have-upgrade-now.
And here are the commandbuttons;
CommandButton Command_SpartanGerousiaFocusHarvest Command = OBJECT_UPGRADE Options = CANCELABLE NEED_UPGRADE NeededUpgrade = Upgrade_SpartanGerousiaNoFocus Upgrade = Upgrade_SpartanGerousiaFocusHarvest TextLabel = CONTROLBAR:SpartanGerousiaFocusHarvest ButtonImage = TBSparta_FocusHarvest ButtonBorderType = UPGRADE DescriptLabel = CONTROLBAR:ToolTipSpartanGerousiaFocusHarvest Radial = Yes InPalantir = Yes LacksPrerequisiteLabel = TOOLTIP:LackSpartanNoFocus End CommandButton Command_SpartanGerousiaFocusWarfare Command = OBJECT_UPGRADE Options = CANCELABLE NEED_UPGRADE NeededUpgrade = Upgrade_SpartanGerousiaNoFocus Upgrade = Upgrade_SpartanGerousiaFocusWarfare TextLabel = CONTROLBAR:SpartanGerousiaFocusWarfare ButtonImage = TBSparta_FocusWarfare ButtonBorderType = UPGRADE DescriptLabel = CONTROLBAR:ToolTipSpartanGerousiaFocusWarfare Radial = Yes InPalantir = Yes LacksPrerequisiteLabel = TOOLTIP:LackSpartanNoFocus End
As you can see, they both need the Upgrade_SpartanGerousiaNoFocus to be purchased. The object you use (porter was it?) starts with this upgrade, so both are avaliable from the start. But, once you purchase one of them, the Upgrade_SpartanGerousiaNoFocus is Removed and the Upgrade_SpartanGerousiaHaveFocus is Granted, so you can't purchase either of them again.
Hope you understand. Obviously, you'll need to change the stuff around (names, attributes, ect..), but you basically need 4 OBJECT upgrades. (Very important that they are in fact OBJECT, not PLAYER)
Here are mine, in case you want to see them too;
Upgrade Upgrade_SpartanGerousiaHaveFocus DisplayName = UPGRADE:SpartanGerousiaHaveFocus Type = OBJECT End Upgrade Upgrade_SpartanGerousiaNoFocus DisplayName = UPGRADE:SpartanGerousiaNoFocus Type = OBJECT BuildCost = 0 ; BuildTime = SPARTA_GEROUSIA_REMOVE_FOCUS_BUILDTIME ;- I use this to be able to abandon the upgrade I chose, and choose a new one, so it's got a BuildTime to "remove" the Focus. ; ResearchCompleteEvaEvent = UpgradeBannerCarrierTechnologyReady ;- "We are now free to pursue a new focus" End Upgrade Upgrade_SpartanGerousiaFocusHarvest DisplayName = UPGRADE:SpartanGerousiaFocusHarvest Type = OBJECT BuildCost = 0 BuildTime = SPARTA_GEROUSIA_FOCUS_HARVEST_BUILDTIME ; ResearchCompleteEvaEvent = UpgradeBannerCarrierTechnologyReady ;- "We are now focusing on the harvest" End Upgrade Upgrade_SpartanGerousiaFocusWarfare DisplayName = UPGRADE:SpartanGerousiaFocusWarfare Type = OBJECT BuildCost = 0 BuildTime = SPARTA_GEROUSIA_FOCUS_WARFARE_BUILDTIME ; ResearchCompleteEvaEvent = UpgradeBannerCarrierTechnologyReady ;- "We are now focusing on warfare" End
If you have any questions, don't be afraid to ask!
edit: Fuck you Geel, did I really take that long to write this post?
Edited by Lauri, 28 April 2012 - 02:44 PM.
The 4th Age version 0.8 has been released: Link
#4
Posted 28 April 2012 - 02:54 PM
I summarized it really small, while you included the grant upgrade piece, and perhaps a bit more info
#5
Posted 29 April 2012 - 01:14 AM
While the codes above Will work the problem may arise If you click both upgrades at the same time , even if one goes first the other will follow
even if the buttons are greyed out or the upgrade is conflicting ....
Then I realised the battlewagon does exactly this so don't forget
Behavior = ProductionUpdate ProductionUpdateModuleTag GiveNoXP = Yes MaxQueueEntries = 1 ; only allow one queued upgrade at a time End
A simle commandset upgrade functions nicely as well
Behavior = CommandSetUpgrade ModuleTag_DualWeaponsUpgrade TriggeredBy = Upgrade_IsengardDualWeapons CommandSet = MordoMorgulFighterHordeCommandSetDualWeapons ConflictsWith = Upgrade_ModorOrcArmour End Behavior = CommandSetUpgrade ModuleTag_TorchesUpgrade TriggeredBy = Upgrade_ModorOrcArmour CommandSet = MordoMorgulFighterHordeCommandSetShields ConflictsWith = Upgrade_IsengardDualWeapons End
I realised all the other Upgrade codes were not even necc ..as if the button is not there you can't use it
Or maybe this is just another Solution to the ones posted ..Testing all this upgrade stuff is headaching
Edited by JUS_SAURON, 29 April 2012 - 01:17 AM.
#6
Posted 29 April 2012 - 01:30 AM
Haven't thought about the Battlewagon before, might have a look at that piece of code (but if I rememer correct, I don't have any problems with my code)
edit: Unless, perhaps, you combine your two ways; The battlewagon thing to limit to one upgrade being researched, and a commandset trigger on complete. That way, you can't click on two at the same time, and will avoid the problem all together. Huh, never thought of that..
Edited by Lauri, 29 April 2012 - 01:35 AM.
The 4th Age version 0.8 has been released: Link
#7
Posted 29 April 2012 - 07:14 AM
The Max entries bit will only allow one upgrade at a time , you can't even click ( queue ) the other
I was even giving up on the idea when this worked as I was debugging for the Sword Or Shield Upgrade I wanted
#8
Posted 29 April 2012 - 09:16 AM
Thanks for the answers! I hadn't thought of the ways you pointed out, thanks! I'll try that then. That's such a pain in the ass that'll go away.
What about the fact it must be an OBJECT upgrade and not a PLAYER one? In the coding I've already done, they're PLAYER upgrades. What does it change exactly? I've realized that using the "ConflictsWith" you can still purchase the other upgrade, but it won't be effective. But even after discovering that, I wanted the button to be grayed out/disappeared so it's wonderful!
#10
Posted 30 October 2017 - 06:37 PM
Have an upgrade that enables the researching of all the options. After researching the upgrade you want the new upgrade you get removes the "basic" upgrade, thus disabling the other buttons.
Behavior = RemoveUpgradeUpgrade Remove_Upgrades_trolololol TriggeredBy = Upgrade_somethingsomthin UpgradeToRemove = Upgrade_something End
Hello. Can you help me? Can I disable specialpower after using it with RemoveUpgradeUpgrade?
#11
Posted 28 November 2017 - 02:03 PM
did you try a commandset change ?
you cant use power if button is not there
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users