Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This is the Item State you equip on the soldier.
- InvItemState = FindReplacementItemForUnit(NewUnitState, InventoryItems[idx], XComHQ);
- private static function XComGameState_Item FindReplacementItemForUnit(const XComGameState_Unit UnitState, const EquipmentInfo InventoryItem, const XComGameState_HeadquartersXCom XComHQ)
- {
- local XComGameStateHistory History;
- local XComGameState_Item ItemState;
- local X2WeaponTemplate WeaponTemplate;
- local X2ArmorTemplate ArmorTemplate;
- History = `XCOMHISTORY;
- ItemState = XComGameState_Item(History.GetGameStateForObjectID(InventoryItem.EquipmentRef.ObjectID));
- // This is a weapon
- WeaponTemplate = X2WeaponTemplate(ItemState.GetMyTemplate());
- if (WeaponTemplate != none)
- {
- WeaponTemplate = GetBestWeaponTemplateForUnit(UnitState, WeaponTemplate, XComHQ);
- if (WeaponTemplate != none)
- {
- return XComHQ.GetItemByName(WeaponTemplate.DataName);
- }
- }
- ArmorTemplate = X2ArmorTemplate(ItemState.GetMyTemplate());
- if (ArmorTemplate != none)
- {
- ArmorTemplate = GetBestArmorTemplateForUnit(UnitState, ArmorTemplate, XComHQ);
- if (ArmorTemplate != none)
- {
- return XComHQ.GetItemByName(ArmorTemplate.DataName);
- }
- }
- return none;
- }
- private static function X2WeaponTemplate GetBestWeaponTemplateForUnit(const XComGameState_Unit UnitState, const X2WeaponTemplate OrigWeaponTemplate, const XComGameState_HeadquartersXCom XComHQ)
- {
- local XComGameStateHistory History;
- local XComGameState_Item ItemState;
- local StateObjectReference ItemRef;
- local X2WeaponTemplate WeaponTemplate;
- local X2WeaponTemplate BestWeaponTemplate;
- local int HighestTier;
- HighestTier = -999;
- History = `XCOMHISTORY;
- foreach XComHQ.Inventory(ItemRef)
- {
- ItemState = XComGameState_Item(History.GetGameStateForObjectID(ItemRef.ObjectID));
- WeaponTemplate = X2WeaponTemplate(ItemState.GetMyTemplate());
- if (WeaponTemplate != none)
- {
- if (WeaponTemplate.WeaponCat == OrigWeaponTemplate.WeaponCat && WeaponTemplate.InventorySlot == OrigWeaponTemplate.InventorySlot)
- {
- if (WeaponTemplate.Tier > HighestTier)
- {
- HighestTier = WeaponTemplate.Tier;
- BestWeaponTemplate = WeaponTemplate;
- }
- }
- }
- }
- return BestWeaponTemplate;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement