12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- class HandStartReplacingItemElsewhereWithNewInHands extends HandStateBase
- {
- void HandStartReplacingItemElsewhereWithNewInHands (Man player = NULL, HandStateBase parent = NULL)
- { }
- override void OnEntry (HandEventBase e)
- {
- super.OnEntry(e);
-
- Man player = e.m_Player;
- HandEventReplaceWithNewBase edr = HandEventReplaceWithNewBase.Cast(e);
- if (edr)
- {
- if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] HandStartReplacingItemElsewhereWithNewInHands about to execute lambda");
- HumanInventoryWithFSM inv = HumanInventoryWithFSM.Cast(player.GetInventory());
- edr.m_Lambda.Execute(inv);
- return;
- }
- else
- Error("[hndfsm] HandStartReplacingItemElsewhereWithNewInHands - not a HandEvenReplaceWithNewBase event");
- }
- override void OnAbort (HandEventBase e)
- {
- super.OnAbort(e);
- }
- override void OnExit (HandEventBase e)
- {
- super.OnExit(e);
- }
- override bool IsWaitingForActionFinish () { return true; }
- };
- class HandReplacingItemElsewhereWithNewInHands extends HandStateBase
- {
- ref HandStartReplacingItemElsewhereWithNewInHands m_Replacing;
- void HandReplacingItemElsewhereWithNewInHands (Man player = NULL, HandStateBase parent = NULL)
- {
- // setup nested state machine
- m_Replacing = new HandStartReplacingItemElsewhereWithNewInHands(player, this);
- // events:
- HandEventBase _fin_ = new HandEventHumanCommandActionFinished;
- m_FSM = new HandFSM(this); // @NOTE: set owner of the submachine fsm
- m_FSM.AddTransition(new HandTransition( m_Replacing, _fin_, NULL ));
- m_FSM.SetInitialState(m_Replacing);
- }
- };
|