Skip to content

Commit

Permalink
Added documentation and some perk cost adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
Musashi1584 committed Nov 22, 2018
1 parent 248447f commit 3fee71c
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 25 deletions.
Binary file added Assets/UIPerk_SyntheticGenes.tga
Binary file not shown.
24 changes: 12 additions & 12 deletions RPG/Config/NewPromotionScreenbyDefault/XComPromotionUIMod.ini
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RevealAllAbilities = true
; Corporal 1
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=CloseandPersonal, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgTacticalSense, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=LW2WotC_Sentinel, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=LW2WotC_Sentinel, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Gunner, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Grenadier, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=LongWatch, AbilityCost=20)
Expand All @@ -38,13 +38,13 @@ RevealAllAbilities = true
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HuntersInstinct, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Deadeye, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=CoveringFire, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Shredder, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Shredder, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HeavyOrdnance, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=SteadyHands, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Bladestorm, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HaywireProtocol, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Shadowstrike, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=FieldMedic, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=FieldMedic, AbilityCost=20)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=LightningHands, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Retribution, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Shrapnel, AbilityCost=25)
Expand All @@ -56,7 +56,7 @@ RevealAllAbilities = true
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Lockdown, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Quartermaster, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=SharpshooterAim, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Kenjutsu, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Kenjutsu, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=ScanningProtocol, AbilityCost=20)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Relocation, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RevivalProtocol, AbilityCost=25)
Expand All @@ -74,20 +74,20 @@ RevealAllAbilities = true
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgCutthroat, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Interference, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Stealth, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=FieldSurgeon, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=FieldSurgeon, AbilityCost=20)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=TriggerHappy, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=ManualOverride, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RemoteStart, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=TargetDefinition, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=TargetDefinition, AbilityCost=20)
; Major 5
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=CloseCombatSpecialist, AbilityCost=30)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgAggression, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=ReadyForAnything, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HailOfBullets, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HailOfBullets, AbilityCost=20)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgBombard, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HitWhereItHurts, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Implacable, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=ThreatAssessment, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=ThreatAssessment, AbilityCost=20)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgDangerSense, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RescueProtocol, AbilityCost=25)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RpgZoneOfControl, AbilityCost=25)
Expand All @@ -96,18 +96,18 @@ RevealAllAbilities = true
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=VitalPointTargeting, AbilityCost=25)
; Colonel 6
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=BringEmOn, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RapidFire, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RapidFire, AbilityCost=40)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=KillZone, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=BulletShred, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Salvo, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=InTheZone, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Untouchable, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=FailSafe, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HitandRun, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HitandRun, AbilityCost=40)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=RestorativeMist, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Faceoff, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Faceoff, AbilityCost=40)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Whiplash, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HomingMine, AbilityCost=35)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=HomingMine, AbilityCost=40)
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Multitargeting, AbilityCost=35)
; Brigadier 7
+ClassCustomAbilityCost = (ClassName=UniversalSoldier, AbilityName=Lethal, AbilityCost=45)
Expand Down
3 changes: 2 additions & 1 deletion RPG/Config/XComClassData.ini
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,8 @@
(AbilityName="DeepCover"), \\
(AbilityName="RpgFirebug"), \\
(AbilityName="RpgScrounger"), \\
(AbilityName="RpgDrivenByVengeance") \\
(AbilityName="RpgDrivenByVengeance"), \\
(AbilityName="SyntheticGenes") \\
))


Expand Down
2 changes: 1 addition & 1 deletion RPG/Config/XComRPG.ini
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ DefaultWeaponUpgradeSlots=3
+AbilitySlots=(AbilityType=(AbilityName="LW2WotC_Sentinel", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="CoveringFire", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="EverVigilant", ApplyToWeaponSlot=eInvSlot_Unknown))
+AbilitySlots=(AbilityType=(AbilityName="Sentinel", ApplyToWeaponSlot=eInvSlot_Unknown))
+AbilitySlots=(AbilityType=(AbilityName="Sentinel", ApplyToWeaponSlot=eInvSlot_Unknown)) ; Guardian
+AbilitySlots=(AbilityType=(AbilityName="ReadyForAnything", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="KillZone", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon))
+AbilitySlots=(AbilityType=(AbilityName="HighNoon", ApplyToWeaponSlot=eInvSlot_PrimaryWeapon))
Expand Down
Binary file modified RPG/Content/UILibrary_RPG.upk
Binary file not shown.
36 changes: 28 additions & 8 deletions RPG/Features.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,39 @@ Gifted = 7
Genius = 10
Savant = 15

The ability cost for buying abilities is raised too however:
The basline ability cost for buying abilities is raised too however:

0 for Squaddie abilities
50 for Corporal abilities
50 for Sergeant abilities
50 for Lieutenant abilities
50 for Captain abilities
60 for Major abilities
60 for Colonel abilities
70 for Brigadier abilities
25 for Corporal abilities
25 for Sergeant abilities
25 for Lieutenant abilities
25 for Captain abilities
25 for Major abilities
35 for Colonel abilities
45 for Brigadier abilities

Individual abilities may cost more or less depending on their powerlevel.

The ability point rewards are doubled and the mission cap is raised from 2 to 10 AP/mission

[h1]Soldier SP[/h1]

Soldier Stat Points are a new system introduced by RPGO which. Its a dedicated pool that can only used for raising stats.

By default your soldiers get 15SP/Promotion.

In addition your soldiers have a "natural aptitude" level. It serves the same purpose as combat intelligence but for stat points.

As with combat intelligence there are 5 levels of natural aptitude:

Mortal +0 SP / Promotion
Good Genes +5 SP / Promotion
Peak Human +10 SP / Promotion
Super Human +15 SP / Promotion
Godlike +20 SP / Promotion

You can see the aptitude level of a soldier int the soldier list (a new icon next to combat intelligence with the same color code) and on the stats screen.

[h1]Changes to weapons[/h1]
[list]
[*] All weapons get 3 upgrade slots
Expand Down
Binary file modified RPG/Localization/XComGame.int
Binary file not shown.
2 changes: 1 addition & 1 deletion RPG/Src/StatUpgradeUI/Classes/StatUIHelper.uc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ static function OnStatAssignmentCompleteNaturalAptitude(XComGameState_Unit UnitS
Apt = RollNaturalAptitude();

//`LOG(default.Class @ GetFuncName() @ Apt @ float(Apt),, 'RPG');
UnitState.SetUnitFloatValue('NaturalAptitude', float(Apt) , eCleanUp_Never);
UnitState.SetUnitFloatValue('NaturalAptitude', float(Apt), eCleanUp_Never);
}

static function int GetBonusStatPointsFromNaturalAptitude(XComGameState_Unit UnitState)
Expand Down
36 changes: 36 additions & 0 deletions RPG/Src/XCOM2RPGOverhaul/Classes/X2Ability_RPGOverhaul.uc
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ static function array<X2DataTemplate> CreateTemplates()
Templates.AddItem(HotShot());
Templates.AddItem(EagleEye());
Templates.AddItem(Runner());
Templates.AddItem(SyntheticGenes());

// Class abilities
Templates.AddItem(Quartermaster());
Expand Down Expand Up @@ -170,6 +171,41 @@ static function ProdigyPurchased(XComGameState NewGameState, XComGameState_Unit
}
}

static function X2AbilityTemplate SyntheticGenes()
{
local X2AbilityTemplate Template;

Template = PurePassive('SyntheticGenes', "img:///Texture2D'UILibrary_RPG.UIPerk_SyntheticGenes'");
Template.SoldierAbilityPurchasedFn = SyntheticGenesPurchased;

return Template;
}

static function SyntheticGenesPurchased(XComGameState NewGameState, XComGameState_Unit UnitState)
{
local int NaturalAptitude;

NaturalAptitude = int(GetNaturalAptitude(UnitState));

if (NaturalAptitude <= 2)
{
UnitState.SetUnitFloatValue('NaturalAptitude', NaturalAptitude + 2, eCleanUp_Never);
}
if (NaturalAptitude == 3)
{
UnitState.SetUnitFloatValue('NaturalAptitude', NaturalAptitude + 1, eCleanUp_Never);
}
}


static function ENaturalAptitude GetNaturalAptitude(XComGameState_Unit UnitState)
{
local UnitValue NaturalAptitudeValue;

UnitState.GetUnitValue('NaturalAptitude', NaturalAptitudeValue);
return ENaturalAptitude(NaturalAptitudeValue.fValue);
}

static function X2AbilityTemplate Bulletproof()
{
local X2AbilityTemplate Template;
Expand Down
15 changes: 13 additions & 2 deletions RPG/notes.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
- 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
- New ability/stat purchase system. No more free perks. Different perk costs depending on powerlevel of the perk and rank (colonel and brigadier rank perks are more expensive).
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/XComStatUpgradeUI.ini
- Added natural aptitude as a counterpart to combat intelligence but for stat points
Mortal +0 SP / Promotion
Good Genes +5 SP / Promotion
Peak Human +10 SP / Promotion
Super Human +15 SP / Promotion
Godlike +20 SP / Promotion
- Added new random squaddie ability "SyntheticGenes" that works like Prodigy but for natural aptitude
- Training center respec currently does *not* refund SP. this will be fixed with the next Highlander Update.


- Reduced HP stat costs for beta/delta strike


Expand Down

0 comments on commit 3fee71c

Please sign in to comment.