Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- XcomGame.ini
- [YellowAlert.YellowAlert_X2DownloadableContentInfo]
- DLCIdentifier="YellowAlert"
- [XComGame.CHHelpers]
- ; Ensure that units can use these action point types after scampering
- +AdditionalAIBTActionPointTypes=OffensiveReflexActionPoint_LW
- +AdditionalAIBTActionPointTypes=DefensiveReflexActionPoint_LW
- XcomYellowAlert.ini
- [YellowAlert.YellowAlert_X2DownloadableContentInfo]
- ; Offensive actions - Undamaged units in yellow alert that activate on their turn will be allowed
- ; these actions. If these abilties don't exist they won't be used.
- +OffensiveReflexAbilities=StandardShot
- +OffensiveReflexAbilities=Overwatch
- +OffensiveReflexAbilities=SniperRifleOverwatch
- +OffensiveReflexAbilities=LightEmUp
- +OffensiveReflexAbilities=HunkerDown
- +OffensiveReflexAbilities=Suppression
- +OffensiveReflexAbilities=Suppression_LW
- +OffensiveReflexAbilities=AreaSuppression
- +OffensiveReflexAbilities=Mindspin
- +OffensiveReflexAbilities=WarCry
- +OffensiveReflexAbilities=MarkTarget
- +OffensiveReflexAbilities=EnergyShield
- +OffensiveReflexAbilities=EnergyShieldMk3
- +OffensiveReflexAbilities=BlazingPinionsStage1
- +OffensiveReflexAbilities=DevastatingPunch
- +OffensiveReflexAbilities=ChryssalidSlash
- +OffensiveReflexAbilities=ScythingClaws
- +OffensiveReflexAbilities=PsiReanimation
- +OffensiveReflexAbilities=AnimaInversion
- +OffensiveReflexAbilities=LWDroneShock
- +OffensiveReflexAbilities=LWDroneRepair
- +OffensiveReflexAbilities=LWDroneMeleeStun
- +OffensiveReflexAbilities=MassReanimation_LW
- +OffensiveReflexAbilities=PersonalShield
- ;+OffensiveReflexAbilities=StandardMove
- ;+OffensiveReflexAbilities=Teleport
- ; Defensive actions - Damaged units in yellow alert that activate on their turn, or any unit
- ; in green that activates on their turn (if green reflex actions are enabled) will use this
- ; table.
- ;At the time I cannot get select abilities to work therefore units will have access to all of their abilities when granted an extra reflex action
- +DefensiveReflexAbilities=Overwatch
- +DefensiveReflexAbilities=SniperRifleOverwatch
- +DefensiveReflexAbilities=LongWatch
- +DefensiveReflexAbilities=HunkerDown
- +DefensiveReflexAbilities=WarCry
- +DefensiveReflexAbilities=EnergyShield
- +DefensiveReflexAbilities=EnergyShieldMk3
- +DefensiveReflexAbilities=LWDroneRepair
- +DefensiveReflexAbilities=PersonalShield
- +DefensiveReflexAbilities=Suppression
- +DefensiveReflexAbilities=Suppression_LW
- +DefensiveReflexAbilities=AreaSuppression
- ;+DefensiveReflexAbilities=PsiReanimation
- ;+DefensiveReflexAbilities=AnimaInversion
- ;+DefensiveReflexAbilities=MassReanimation_LW
- YellowAlert_X2DownloadableContentInfo
- class YellowAlert_X2DownloadableContentInfo extends X2DownloadableContentInfo config(YellowAlert);
- var config array<name> OffensiveReflexAbilities;
- var config array<name> DefensiveReflexAbilities;
- static event OnPostTemplatesCreated()
- {
- AddReflexActions();
- }
- static function AddReflexActions()
- {
- local X2AbilityTemplateManager AbilityManager;
- local name AbilityName;
- local X2AbilityTemplate Template;
- AbilityManager = class'X2AbilityTemplateManager'.static.GetAbilityTemplateManager();
- foreach default.DefensiveReflexAbilities(AbilityName)
- {
- Template = AbilityManager.FindAbilityTemplate(AbilityName);
- if (Template != none)
- {
- AddReflexActionPoint(Template, class'YellowAlert_UIScreenListener'.const.DefensiveReflexAction);
- }
- else
- {
- `Log("Cannot add reflex ability " $ AbilityName $ ": Is not a valid ability");
- }
- }
- foreach default.OffensiveReflexAbilities(AbilityName)
- {
- Template = AbilityManager.FindAbilityTemplate(AbilityName);
- if (Template != none)
- {
- AddReflexActionPoint(Template, class'YellowAlert_UIScreenListener'.const.OffensiveReflexAction);
- }
- else
- {
- `Log("Cannot add reflex ability " $ AbilityName $ ": Is not a valid ability");
- }
- }
- }
- static function AddReflexActionPoint(X2AbilityTemplate Template, Name ActionPointName)
- {
- local X2AbilityCost_ActionPoints ActionPointCost;
- local X2AbilityCost Cost;
- foreach Template.AbilityCosts(Cost)
- {
- ActionPointCost = X2AbilityCost_ActionPoints(Cost);
- if (ActionPointCost != none)
- {
- ActionPointCost.AllowedTypes.AddItem(ActionPointName);
- `Log("Adding reflex action point " $ ActionPointName $ " to " $ Template.DataName);
- return;
- }
- }
- `Log("Cannot add reflex ability " $ Template.DataName $ ": Has no action point cost");
- YellowAlert_UIScreenListener
- const DefensiveReflexAction = 'DefensiveReflexActionPoint_LW';
- const OffensiveReflexAction = 'OffensiveReflexActionPoint_LW';
- CONTINUE DOWN TO EVENT LISTENER FUNCTION
- if (Member.IsInjured() || !IsYellow)
- {
- //For now just adding a standard action point until I can figure out how to get the enemy to use the DefensiveReflexActions configured in the .ini
- //Member.ActionPoints.AddItem(class'X2CharacterTemplateManager'.default.StandardActionPoint);
- Member.ActionPoints.AddItem(DefensiveReflexAction); //Refund the AI one action point to use after scamper.
- }
- else
- {
- //Member.ActionPoints.AddItem(class'X2CharacterTemplateManager'.default.StandardActionPoint); //Refund the AI one action point to use after scamper.
- Member.ActionPoints.AddItem(OffensiveReflexAction); //Refund the AI one action point to use after scamper.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement