public void InitWeaponRotationControl(NodeAddedEvent e, SelfBattleUser selfBattleUser, SingleNode <GameMouseSettingsComponent> settings)
 {
     selfBattleUser.mouseControlStateHolder.MouseControlAllowed   = settings.component.MouseControlAllowed;
     selfBattleUser.mouseControlStateHolder.MouseControlEnable    = settings.component.MouseControlAllowed;
     selfBattleUser.mouseControlStateHolder.MouseVerticalInverted = settings.component.MouseVerticalInverted;
     selfBattleUser.mouseControlStateHolder.MouseSensivity        = settings.component.MouseSensivity * 1.5f;
 }
Beispiel #2
0
 public void UpdateEnemyBasePointer(UpdateEvent e, EnemyBasePointer pointer, [JoinAll] SelfBattleUser user, [JoinAll] ICollection <FlagPedestalNode> pedestals, [JoinAll] BattleCameraNode battleCamera, [JoinAll] SingleNode <CTFComponent> ctfGameNode)
 {
     if (pedestals.Count >= 2)
     {
         FlagPedestalNode oppositeTeamPedestal = this.GetOppositeTeamPedestal(pedestals, user);
         this.SetBasePosition(pointer.enemyBasePointer, oppositeTeamPedestal.flagPedestal.Position, battleCamera.camera.UnityCamera);
     }
 }
Beispiel #3
0
 private void SetFlagNotHomeIcon(FlagNode flag, SelfBattleUser user, SingleNode <AlliesBasePointerComponent> alliesPointer, EnemyBasePointer enemyPointer)
 {
     if (flag.teamGroup.Key == user.teamGroup.Key)
     {
         alliesPointer.component.SetFlagStolenState();
     }
     else
     {
         enemyPointer.enemyBasePointer.SetFlagStolenState();
     }
 }
Beispiel #4
0
 public void CheckMouseState(NodeAddedEvent e, SelfBattleUser selfBattleUser, SingleNode <BattleActionsStateComponent> battleActionsState, Optional <SingleNode <SpectatorCameraComponent> > spectator)
 {
     if (spectator.IsPresent())
     {
         InputManager.DeactivateContext(BasicContexts.MOUSE_CONTEXT);
     }
     else if (selfBattleUser.mouseControlStateHolder.MouseControlAllowed && !InputManager.CheckAction(BattleActions.SHOW_SCORE))
     {
         InputManager.ActivateContext(BasicContexts.MOUSE_CONTEXT);
     }
 }
Beispiel #5
0
 public void CheckMouseState(CheckMouseEvent e, SelfBattleUser selfBattleUser, Optional <SingleNode <SpectatorCameraComponent> > spectator)
 {
     if (spectator.IsPresent())
     {
         InputManager.DeactivateContext(BasicContexts.MOUSE_CONTEXT);
     }
     else if (selfBattleUser.mouseControlStateHolder.MouseControlAllowed)
     {
         InputManager.ActivateContext(BasicContexts.MOUSE_CONTEXT);
     }
 }
Beispiel #6
0
 public void ChangeFlagTextWhenGrounded(NodeAddedEvent e, [Combine] FlagGroundedNode flag, [Context] SelfBattleUser user, [Context] SingleNode <AlliesFlagPointerComponent> alliesPointer, [Context] EnemyFlagPointerNode enemyPointer)
 {
     if (user.teamGroup.Key == flag.teamGroup.Key)
     {
         alliesPointer.component.SetFlagOnTheGroundState();
     }
     else
     {
         enemyPointer.enemyFlagPointer.SetFlagOnTheGroundState();
     }
 }
Beispiel #7
0
 public void ChangeBaseIconWhenFlagNotHome(NodeRemoveEvent e, [Combine] FlagHomeNode flag, [JoinByTeam] FlagPedestalNode flagPedestal, [JoinAll] SelfBattleUser user, [JoinAll] SingleNode <AlliesBasePointerComponent> alliesPointer, [JoinAll] EnemyBasePointer enemyPointer)
 {
     this.SetFlagNotHomeIcon(flag, user, alliesPointer, enemyPointer);
 }
Beispiel #8
0
 public void UpdateEnemyFlagPointer(UpdateEvent e, EnemyFlagPointerNode pointer, [JoinAll] SelfBattleUser user, [JoinByUser] HUDNodes.SelfTankNode selfTank, [JoinByBattle] ICollection <FlagNotHomeNode> flags, [JoinAll] BattleCameraNode battleCamera, [JoinAll] SingleNode <CTFComponent> ctfGameNode)
 {
     if (flags.Count >= 2)
     {
         FlagNotHomeNode oppositeTeamFlag = this.GetOppositeTeamFlag(flags, user);
         if ((oppositeTeamFlag != null) && this.NotFlagCarrier(selfTank, oppositeTeamFlag))
         {
             this.SetFlagPointerPosition(oppositeTeamFlag, pointer.enemyFlagPointer, battleCamera.camera.UnityCamera);
         }
         else
         {
             pointer.enemyFlagPointer.Hide();
         }
     }
 }
Beispiel #9
0
 public void UpdateAlliesBasePointer(UpdateEvent e, SingleNode <AlliesBasePointerComponent> pointer, [JoinAll] SelfBattleUser user, [JoinByTeam] FlagPedestalNode pedestal, [JoinAll] BattleCameraNode battleCamera, [JoinAll] SingleNode <CTFComponent> ctfGameNode)
 {
     this.SetBasePosition(pointer.component, pedestal.flagPedestal.Position, battleCamera.camera.UnityCamera);
 }
Beispiel #10
0
 public void ShowPointersInCTF(NodeAddedEvent e, SingleNode <CTFComponent> ctfGameNode, [Context] SingleNode <AlliesBasePointerComponent> alliesPointer, [Context] EnemyBasePointer enemyPointer, [Context] SelfBattleUser user)
 {
     alliesPointer.component.Show();
     enemyPointer.enemyBasePointer.Show();
 }
Beispiel #11
0
 public void HidePointerWhenFlagHome(NodeAddedEvent e, [Combine] FlagHomeNode flag, SelfBattleUser user, [Context] SingleNode <AlliesFlagPointerComponent> alliesPointer, [Context] EnemyFlagPointerNode enemyPointer, [Context] SingleNode <AlliesBasePointerComponent> alliesBasePointer, [Context] EnemyBasePointer enemyBasePointer)
 {
     if (flag.teamGroup.Key == user.teamGroup.Key)
     {
         alliesPointer.component.Hide();
         alliesBasePointer.component.SetFlagAtHomeState();
     }
     else
     {
         enemyPointer.enemyFlagPointer.Hide();
         enemyBasePointer.enemyBasePointer.SetFlagAtHomeState();
     }
 }
Beispiel #12
0
 private FlagPedestalNode GetOppositeTeamPedestal(ICollection <FlagPedestalNode> pedestals, SelfBattleUser user)
 {
     for (int i = 0; i < pedestals.Count; i++)
     {
         if (pedestals.ElementAt <FlagPedestalNode>(i).teamGroup.Key != user.teamGroup.Key)
         {
             return(pedestals.ElementAt <FlagPedestalNode>(i));
         }
     }
     return(pedestals.First <FlagPedestalNode>());
 }
Beispiel #13
0
 private FlagNotHomeNode GetOppositeTeamFlag(ICollection <FlagNotHomeNode> flags, SelfBattleUser user)
 {
     for (int i = 0; i < flags.Count; i++)
     {
         if (flags.ElementAt <FlagNotHomeNode>(i).teamGroup.Key != user.teamGroup.Key)
         {
             return(flags.ElementAt <FlagNotHomeNode>(i));
         }
     }
     return(null);
 }
Beispiel #14
0
        public void RotateWeapon(WeaponRotationUpdateGyroscopeEvent e, WeaponGyroscopeNode weapon, [JoinByTank] TankNode tank, [JoinByTank] Optional <SingleNode <VulcanWeaponComponent> > vulkanWeapon, [JoinAll] SelfBattleUser selfBattleUser)
        {
            WeaponRotationControlComponent weaponRotationControl = weapon.weaponRotationControl;
            float gyroscopePower = weapon.weaponGyroscopeRotation.GyroscopePower;

            weaponRotationControl.ForceGyroscopeEnabled = vulkanWeapon.IsPresent() && (gyroscopePower > float.Epsilon);
            bool mouseControlEnable = selfBattleUser.mouseControlStateHolder.MouseControlEnable;
            WeaponGyroscopeRotationComponent weaponGyroscopeRotation = weapon.weaponGyroscopeRotation;

            weaponGyroscopeRotation.WeaponTurnCoeff          = 1f;
            weaponGyroscopeRotation.DeltaAngleOfHullRotation = 0f;
            Vector3 forwardDir = weaponGyroscopeRotation.ForwardDir;
            Vector3 upDir      = weaponGyroscopeRotation.UpDir;

            this.UpdateGyroscopeData(weapon, tank);
            Vector3 nextForward = weaponGyroscopeRotation.ForwardDir;
            Vector3 nextUp      = weaponGyroscopeRotation.UpDir;

            if (weaponRotationControl.ForceGyroscopeEnabled || mouseControlEnable)
            {
                weaponGyroscopeRotation.DeltaAngleOfHullRotation = this.CalculateDeltaAngleOfHullRotationAroundUpAxis(forwardDir, nextForward, upDir, nextUp);
                float max = tank.speed.TurnSpeed * e.DeltaTime;
                weaponGyroscopeRotation.DeltaAngleOfHullRotation = Mathf.Clamp(weaponGyroscopeRotation.DeltaAngleOfHullRotation, -max, max);
                if (weaponRotationControl.ForceGyroscopeEnabled)
                {
                    if (mouseControlEnable)
                    {
                        weaponRotationControl.MouseRotationCumulativeHorizontalAngle -= weaponGyroscopeRotation.DeltaAngleOfHullRotation * (1f - gyroscopePower);
                    }
                    float weaponTurnDecelerationCoeff = vulkanWeapon.Get().component.WeaponTurnDecelerationCoeff;
                    weaponGyroscopeRotation.WeaponTurnCoeff           = weaponTurnDecelerationCoeff + ((1f - gyroscopePower) * (1f - weaponTurnDecelerationCoeff));
                    weaponGyroscopeRotation.DeltaAngleOfHullRotation *= gyroscopePower;
                }
            }
        }