Skip to content

Commit

Permalink
Technical spec WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
Musashi1584 committed Nov 22, 2018
1 parent 7c1fbfc commit 8886e6a
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 3 deletions.
1 change: 1 addition & 0 deletions RPG/Config/XComClassData.ini
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="holotargeter")
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="combatknife")
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="arcthrower")
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="lw_gauntlet")
+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType="empty")
+AllowedWeapons=(SlotType=eInvSlot_HeavyWeapon, WeaponType="heavy")
+BaseAbilityPointsPerPromotion=30
Expand Down
23 changes: 22 additions & 1 deletion RPG/Config/XComRPG.ini
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ DefaultWeaponUpgradeSlots=3
+Specializations=(Order=120, TemplateName=Skirmisher, bEnabled=true)
+Specializations=(Order=130, TemplateName=Saboteur, bEnabled=true)
+Specializations=(Order=140, TemplateName=Spotter, bEnabled=true)
;+Specializations=(Order=150, TemplateName=Technical, bEnabled=true)

+AbilityWeaponCategoryRestrictions = (AbilityName=CombatProtocol, WeaponCategories=(gremlin))
+AbilityWeaponCategoryRestrictions = (AbilityName=AidProtocol, WeaponCategories=(gremlin))
Expand Down Expand Up @@ -159,6 +160,10 @@ DefaultWeaponUpgradeSlots=3
+AbilityWeaponCategoryRestrictions = (AbilityName=RPGO_LightEmUp, WeaponCategories=(rifle, shotgun))
+AbilityWeaponCategoryRestrictions = (AbilityName=RunAndGun, WeaponCategories=(rifle, shotgun, pistol, sidearm, SawedOffShotgun, sword))

+AbilityWeaponCategoryRestrictions = (AbilityName=ConcussionRocket, WeaponCategories=(lw_gauntlet))
+AbilityWeaponCategoryRestrictions = (AbilityName=JavelinRockets, WeaponCategories=(lw_gauntlet))
+AbilityWeaponCategoryRestrictions = (AbilityName=BunkerBuster, WeaponCategories=(lw_gauntlet))

+AbilityPrerequisites = (PrerequisiteTree=(Blademaster, Bladestorm, Kenjutsu, Reaper))
+AbilityPrerequisites = (PrerequisiteTree=(Grenadier, HeavyOrdnance))
+AbilityPrerequisites = (PrerequisiteTree=(Phantom, Shadowstrike, Relocation, RpgStealthTactics))
Expand All @@ -168,6 +173,12 @@ DefaultWeaponUpgradeSlots=3
+AbilityPrerequisites = (PrerequisiteTree=(Reckoning, Justice))
+AbilityPrerequisites = (PrerequisiteTree=(Reckoning, Whiplash))
+AbilityPrerequisites = (PrerequisiteTree=(BiggestBooms, Shrapnel, Overkill, RemoteStart))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, FireInTheHole))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, ConcussionRocket))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, JavelinRockets))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, ShockAndAwe))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, BunkerBuster))
+AbilityPrerequisites = (PrerequisiteTree=(HeavyArmaments, FireandSteel))

+MutuallyExclusiveAbilities = (Abilities=(RunAndGun, RPGO_LightEmUp))
+MutuallyExclusiveAbilities = (Abilities=(RpgZoneOfControl, HighNoon))
Expand All @@ -181,6 +192,7 @@ DefaultWeaponUpgradeSlots=3
;+LoadoutUniqueItemCategories = (Categories = (sword, combatknife))
;+LoadoutUniqueItemCategories = (Categories = (SawedOffShotgun))

+LoadoutUniqueItemCategories = (Categories = (lw_gauntlet))
+LoadoutUniqueItemCategories = (Categories = (holotargeter))
+LoadoutUniqueItemCategories = (Categories = (arcthrower))
+LoadoutUniqueItemCategories = (Categories = (wristblade))
Expand Down Expand Up @@ -336,7 +348,16 @@ DefaultWeaponUpgradeSlots=3
+AbilitySlots=(AbilityType=(AbilityName="PermanentTracking"))
+AbilitySlots=(AbilityType=(AbilityName="RpgAirstrike", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))


[Technical X2UniversalSoldierClassInfo]
+ClassSpecializationIcon = "img:///UILibrary_LW_PerkPack.Class_Technical"
;+AbilitySlots=(AbilityType=(AbilityName="RapidTargeting", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="HeavyArmaments"))
+AbilitySlots=(AbilityType=(AbilityName="FireInTheHole"))
+AbilitySlots=(AbilityType=(AbilityName="ConcussionRocket", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="JavelinRockets", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="ShockAndAwe"))
+AbilitySlots=(AbilityType=(AbilityName="BunkerBuster", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="FireandSteel", ApplyToWeaponSlot=eInvSlot_SecondaryWeapon))

[XCOM2RPGOverhaul.X2Effect_ReducedRecoveryTime]
+FIELD_SURGEON_CHANCE_FOR_NUM_EFFECTS[0]=100
Expand Down
5 changes: 5 additions & 0 deletions RPG/Localization/XCOM2RPGOverhaul.int
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ ClassSpecializationSummary="Sometimes its not enough to just bring a rocket laun
ClassSpecializationTitle=Spotter
ClassSpecializationSummary="Every group of dedicated insurgents needs someone to watch their back. Traps, Tricks, and Treats are the name of their game, find it, mark it, and make sure the Op goes smooth."

[Technical X2UniversalSoldierClassInfo]
ClassSpecializationTitle=Technical
ClassSpecializationSummary="Our Technicals are trained to use certain heavy weaponry, the rocket launcher and flamethrower, to provide critical support during firefights."

[XGLocalizedData_RPG]
UtilityCatPistol="(Auto-)Pistol"
UtilityCatSidearm="(Auto-)Pistol"
Expand All @@ -67,5 +71,6 @@ UtilityCatArcthrower="Arc Thrower"
UtilityCatCombatknife="Melee Weapon"
UtilityCatHolotargeter="Holotargeter"
UtilityCatSawedoffshotgun="Sawed-Off Shotgun"
UtilityCatLWGauntlet="XCOM Gauntlet"
m_strCategoryRestricted=ALREADY EQUIPPED A <XGParam:StrValue0/!WeaponCat/>
m_strAbilityRequired=ABILITY <XGParam:StrValue0/!Ability/> REQUIRED
8 changes: 8 additions & 0 deletions RPG/Src/StatUpgradeUI/Classes/UIScreen_StatUI.uc
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,13 @@ function int GetSoldierSP()
return int(StatPointsValue.fValue);
}

function int GetSpentSoldierSP()
{
local UnitValue StatPointsValue;
UnitState.GetUnitValue('SpentStatPoints', StatPointsValue);
return int(StatPointsValue.fValue);
}

function Save(UIButton Button)
{
`LOG(self.Class.name @ GetFuncName(), bLog, 'RPG');
Expand Down Expand Up @@ -255,6 +262,7 @@ simulated function ComfirmStatUpgradeCallback(Name Action)
UpdatedUnit.AbilityPoints -= AbilityPointCostSum;
UpdatedUnit.SpentAbilityPoints += AbilityPointCostSum;
UpdatedUnit.SetUnitFloatValue('StatPoints', float(GetSoldierSP() - StatPointCostSum), eCleanup_Never);
UpdatedUnit.SetUnitFloatValue('SpentStatPoints', float(GetSpentSoldierSP() + StatPointCostSum), eCleanup_Never);
`XEVENTMGR.TriggerEvent('AbilityPointsChange', UpdatedUnit, , UpdateState);

`GAMERULES.SubmitGameState(UpdateState);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ static function EventListenerReturn OnGetLocalizedCategory(Object EventData, Obj
case 'sawedoffshotgun':
Localization = class'XGLocalizedData_RPG'.default.UtilityCatSawedoffshotgun;
break;
case 'lw_gauntlet':
Localization = class'XGLocalizedData_RPG'.default.UtilityCatLWGauntlet;
break;
default:
Localization = Tuple.Data[0].s;
break;
Expand Down
14 changes: 12 additions & 2 deletions RPG/Src/XCOM2RPGOverhaul/Classes/X2TemplateHelper_RPGOverhaul.uc
Original file line number Diff line number Diff line change
Expand Up @@ -256,17 +256,22 @@ static function PatchAbilitiesWeaponCondition()
local X2AbilityTemplate Template;
local X2Condition_WeaponCategory WeaponCondition;
local AbilityWeaponCategoryRestriction Restriction;
local bool bMeleeReaction;

TemplateManager = class'X2AbilityTemplateManager'.static.GetAbilityTemplateManager();

foreach default.AbilityWeaponCategoryRestrictions(Restriction)
{
Template = TemplateManager.FindAbilityTemplate(Restriction.AbilityName);
if (Template != none && !X2AbilityToHitCalc_StandardMelee(Template.AbilityToHitCalc).bReactionFire)
bMeleeReaction = X2AbilityToHitCalc_StandardMelee(Template.AbilityToHitCalc) != none && X2AbilityToHitCalc_StandardMelee(Template.AbilityToHitCalc).bReactionFire;
if (Template != none && !bMeleeReaction)
{
WeaponCondition = new class'X2Condition_WeaponCategory';
WeaponCondition.IncludeWeaponCategories = Restriction.WeaponCategories;
Template.AbilityTargetConditions.AddItem(WeaponCondition);

Template.eAbilityIconBehaviorHUD = eAbilityIconBehavior_HideSpecificErrors;
Template.HideErrors.AddItem('AA_WeaponIncompatible');
}
}
}
Expand Down Expand Up @@ -1094,7 +1099,12 @@ static function AddAnimSet(XComUnitPawn Pawn, AnimSet AnimSetToAdd)
}
}

static function EInventorySlot FindInventorySlotForItemCategory(XComGameState_Unit UnitState, name WeaponCategory, out XComGameState_Item FoundItemState, optional XComGameState StartState)
static function EInventorySlot FindInventorySlotForItemCategory(
XComGameState_Unit UnitState,
name WeaponCategory,
out XComGameState_Item FoundItemState,
optional XComGameState StartState
)
{
local array<XComGameState_Item> CurrentInventory;
local XComGameState_Item InventoryItem;
Expand Down
1 change: 1 addition & 0 deletions RPG/Src/XCOM2RPGOverhaul/Classes/XGLocalizedData_RPG.uc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ var localized string UtilityCatArcthrower;
var localized string UtilityCatCombatknife;
var localized string UtilityCatHolotargeter;
var localized string UtilityCatSawedoffshotgun;
var localized string UtilityCatLWGauntlet;

var localized string m_strCategoryRestricted;
var localized string m_strAbilityRequired;
5 changes: 5 additions & 0 deletions RPG/notes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
- New ability/stat purchase system. No more free perks. Adjusted perk costs (cheap, baseline, expensive perks). Stats can be bought with a separate stat point pool (15/promotion) and Soldier AP.
Ability AP costs and Stat Points per promotion can be edited in config/StatUpgradeUI/XcomUI.ini
- Reduced HP stat costs for beta/delta strike


- Unlocks cool under pressure as GTS Perk
- Allow special shots like rapid fire and chain shot as valid second actions for LightEmUp.

Expand Down

0 comments on commit 8886e6a

Please sign in to comment.