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; }
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); } }
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(); } }
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); } }
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); } }
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(); } }
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); }
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(); } } }
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); }
public void ShowPointersInCTF(NodeAddedEvent e, SingleNode <CTFComponent> ctfGameNode, [Context] SingleNode <AlliesBasePointerComponent> alliesPointer, [Context] EnemyBasePointer enemyPointer, [Context] SelfBattleUser user) { alliesPointer.component.Show(); enemyPointer.enemyBasePointer.Show(); }
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(); } }
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>()); }
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); }
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; } } }