12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- class TelescopicBaton : ItemBase
- {
- protected int m_MeleeMode;
- protected int m_MeleeHeavyMode;
- protected int m_MeleeSprintMode;
-
- protected ref OpenableBehaviour m_Openable;
-
- void TelescopicBaton()
- {
- //!set default melee modes on init
- m_MeleeMode = 0;
- m_MeleeHeavyMode = 1;
- m_MeleeSprintMode = 2;
- m_Openable = new OpenableBehaviour(false);
-
- RegisterNetSyncVariableBool("m_Openable.m_IsOpened");
- UpdateVisualState();
- }
-
- override void Open()
- {
- m_Openable.Open();
- SetSynchDirty();
- //! sets different set of melee modes for opened state
- m_MeleeMode = 3;
- m_MeleeHeavyMode = 4;
- m_MeleeSprintMode = 5;
- UpdateVisualState();
- }
- override void Close()
- {
- m_Openable.Close();
- SetSynchDirty();
- //! sets different set of melee modes for closed state
- m_MeleeMode = 0;
- m_MeleeHeavyMode = 1;
- m_MeleeSprintMode = 2;
- UpdateVisualState();
- }
-
- override bool IsOpen()
- {
- return m_Openable.IsOpened();
- }
- protected void UpdateVisualState()
- {
- if ( IsOpen() )
- {
- SetAnimationPhase("Doors1", 0.0);
- }
- else
- {
- SetAnimationPhase("Doors1", 1.0);
- }
- }
-
- override int GetMeleeMode()
- {
- return m_MeleeMode;
- }
- override int GetMeleeHeavyMode()
- {
- return m_MeleeHeavyMode;
- }
-
- override int GetMeleeSprintMode()
- {
- return m_MeleeSprintMode;
- }
- override void OnVariablesSynchronized()
- {
- super.OnVariablesSynchronized();
- UpdateVisualState();
- }
-
- override void SetActions()
- {
- super.SetActions();
- AddAction(ActionOpen);
- AddAction(ActionClose);
- }
- }
|