Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class X2EventListener_Babes extends X2EventListener;
- var localized string Babe1_FirstName;
- var localized string Babe1_LastName;
- var localized string Babe1_NickName;
- var localized string Babe1_Background;
- var localized string Babe2_FirstName;
- var localized string Babe2_LastName;
- var localized string Babe2_NickName;
- var localized string Babe2_Background;
- static function array<X2DataTemplate> CreateTemplates()
- {
- local array<X2DataTemplate> Templates;
- Templates.AddItem(CreateTacticalListeners());
- return Templates;
- }
- static function CHEventListenerTemplate CreateTacticalListeners()
- {
- local CHEventListenerTemplate Template;
- `CREATE_X2TEMPLATE(class'CHEventListenerTemplate', Template, 'DukeBabeAppearanceChanger');
- Template.AddCHEvent('OnTacticalBeginPlay', ChangeBabeAppearance); //defaults to ELD Submitted
- Template.RegisterInTactical = true;
- return Template;
- }
- static protected function EventListenerReturn ChangeBabeAppearance(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackData)
- {
- local XComTacticalMissionManager MissionManager;
- local XComGameState_Unit UnitState;
- local XComGameState_AIGroup GroupState;
- local XComGameStateHistory History;
- local XComGameState NewGameState;
- local bool ChangedSomething;
- local int i;
- MissionManager = `TACTICALMISSIONMGR;
- if (MissionManager.ActiveMission.sType == "DukeMission")
- {
- `LOG("Iridar UI Screen listener is triggered!",, 'IRIDAR');
- History = `XCOMHISTORY;
- NewGameState = class'XComGameStateContext_ChangeContainer'.static.CreateChangeState("Changing Babes Appearance");
- ChangedSomething = false;
- foreach History.IterateByClassType(class'XComGameState_AIGroup', GroupState)
- {
- if (GroupState.EncounterID == 'ResistanceTeamMember_VIP')
- {
- if(GroupState.PrePlacedEncounterTag == 'ResistanceTeamMember_01')
- {
- for (i = 0; i < GroupState.m_arrMembers.Length; ++i)
- {
- //UnitState = XComGameState_Unit(History.GetGameStateForObjectID(GroupState.m_arrMembers[i].ObjectID));
- UnitState = XComGameState_Unit(NewGameState.ModifyStateObject(class'XComGameState_Unit', GroupState.m_arrMembers[i].ObjectID));
- if (UnitState != none)
- {
- `LOG("Found babe #1: " @ UnitState.GetFullName(),, 'IRIDAR');
- SetUp_BabeAppearance(UnitState, 1);
- ChangedSomething = true;
- }
- }
- }
- if (GroupState.PrePlacedEncounterTag == 'ResistanceTeamMember_02')
- {
- for (i = 0; i < GroupState.m_arrMembers.Length; ++i)
- {
- //UnitState = XComGameState_Unit(History.GetGameStateForObjectID(GroupState.m_arrMembers[i].ObjectID));
- UnitState = XComGameState_Unit(NewGameState.ModifyStateObject(class'XComGameState_Unit', GroupState.m_arrMembers[i].ObjectID));
- if (UnitState != none)
- {
- `LOG("Found babe #1: " @ UnitState.GetFullName(),, 'IRIDAR');
- SetUp_BabeAppearance(UnitState, 2);
- ChangedSomething = true;
- }
- }
- }
- }
- }
- if (ChangedSomething)
- {
- `LOG("Babe Appearance configured, submitting New Game State",, 'IRIDAR');
- `XCOMGAME.GameRuleset.SubmitGameState(NewGameState);
- //`GAMERULES.SubmitGameState(NewGameState);
- }
- }
- return ELR_NoInterrupt;
- }
- static function SetUp_BabeAppearance(XComGameState_Unit UnitState, int iTwin)
- {
- UnitState.kAppearance.iGender = 0;
- UnitState.kAppearance.iRace = 0;
- UnitState.kAppearance.nmHead = 'CaucFem_E';
- UnitState.kAppearance.nmHaircut = 'FemHair_M'; // Bob haircut, hopefully
- UnitState.kAppearance.iSkinColor = 0;
- UnitState.kAppearance.iEyeColor = 3; // blue
- UnitState.kAppearance.iArmorTint = 35; // blue
- UnitState.kAppearance.iArmorTintSecondary = 96; // white
- UnitState.kAppearance.iAttitude = 4; // happy go lucky
- UnitState.kAppearance.nmArms = '';
- UnitState.kAppearance.nmBeard = '';
- UnitState.kAppearance.nmArms_Underlay = 'CnvUnderlay_Std_Arms_A_M';
- UnitState.kAppearance.nmLeftArmDeco = '';
- UnitState.kAppearance.nmRightArmDeco = '';
- UnitState.kAppearance.nmEye = 'DefaultEyes';
- UnitState.kAppearance.nmFacePropLower = '';
- UnitState.kAppearance.nmFacePropUpper = '';
- UnitState.kAppearance.nmPatterns = 'Pat_Nothing';
- UnitState.kAppearance.nmHelmet = '';
- UnitState.kAppearance.nmLeftForearm = '';
- UnitState.kAppearance.nmRightForearm = '';
- UnitState.kAppearance.nmThighs = '';
- UnitState.kAppearance.nmShins = '';
- UnitState.kAppearance.nmTorsoDeco = '';
- UnitState.kAppearance.nmTattoo_LeftArm = 'Tattoo_Arms_BLANK';
- UnitState.kAppearance.nmTattoo_RightArm = 'Tattoo_Arms_BLANK';
- UnitState.kAppearance.nmTeeth = 'DefaultTeeth';
- UnitState.kAppearance.iWeaponTint = 5;
- UnitState.kAppearance.nmWeaponPattern = 'Pat_Nothing';
- UnitState.kAppearance.nmLeftArm = 'DLC_30_Arms_Left_Bare_F';
- UnitState.kAppearance.nmRightArm = 'DLC_30_Arms_Right_Bare_F';
- UnitState.kAppearance.nmLegs = 'DLC_30_Legs_E_F'; // "hot pants" - just shorts
- UnitState.kAppearance.nmLegs_Underlay = 'DLC_30_Legs_E_F';
- UnitState.kAppearance.nmTorso = 'DLC_30_Torso_A_F'; // bare torso (bra only)
- UnitState.kAppearance.nmTorso_Underlay = 'DLC_30_Torso_A_F';
- UnitState.kAppearance.nmVoice = 'FemaleVoice10_English_US';
- if (iTwin == 1)
- {
- UnitState.SetCharacterName(default.Babe1_FirstName, default.Babe1_LastName, default.Babe1_NickName);
- UnitState.SetCountry('Country_USA');
- UnitState.SetBackground(default.Babe1_Background);
- }
- if (iTwin == 2)
- {
- UnitState.SetCharacterName(default.Babe2_FirstName, default.Babe2_LastName, default.Babe2_NickName);
- UnitState.SetCountry('Country_USA');
- UnitState.SetBackground(default.Babe2_Background);
- }
- RefreshPawn(UnitState);
- UnitState.StoreAppearance();
- }
- // refreshes the pawn so that new appearance takes effect
- // thanks to Mr. Nice and robojumper for this!
- static function RefreshPawn(XComGameState_Unit UnitState)
- {
- local UIPawnMgr PawnMgr;
- local int idx;
- PawnMgr=`PRESBASE.GetUIPawnMgr();
- idx=PawnMgr.Pawns.Find('PawnRef', UnitState.ObjectID);
- if (idx != INDEX_NONE) PawnMgr.Pawns[idx].Pawn.SetAppearance(UnitState.kAppearance);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement