public override void Tick(float d) { if (this.TrackedHealthGlobeInteractiveObject == null) { foreach (var interactiveObject in InteractiveObjectV2Manager.Get().InteractiveObjects) { if (interactiveObject is HealthGlobeInteractiveObject HealthGlobeInteractiveObject) { if (!HealthGlobeInteractiveObject.IsMoving()) { var destinationCalculationResult = this.PlayerInteractiveObject.SetDestination(new ForwardAgentMovementCalculationStrategy(new AIDestination(interactiveObject.InteractiveGameObject.GetTransform().WorldPosition, null))); if (destinationCalculationResult == NavMeshPathStatus.PathComplete || destinationCalculationResult == NavMeshPathStatus.PathPartial) { this.TrackedHealthGlobeInteractiveObject = HealthGlobeInteractiveObject; break; } } } } } else { if (this.TrackedHealthGlobeInteractiveObject.IsAskingToBeDestroyed) { this.isEnded = true; } } }
private void FixedUpdate() { var d = Time.fixedDeltaTime; PlayerInteractiveObjectManager.Get().FixedTick(d); InteractiveObjectV2Manager.Get().FixedTick(d); }
private void LateUpdate() { var d = Time.deltaTime; PlayerInteractiveObjectManager.Get().LateTick(d); InteractiveObjectV2Manager.Get().LateTick(d); PlayerActionEntryPoint.Get().LateTick(d); ObstacleOcclusionCalculationManagerV2.Get().LateTick(); RangeIntersectionCalculationManagerV2.Get().LateTick(); }
public override ASequencedAction[] BuildScenarioActions() { this.EnemyObject = InteractiveObjectV2Manager.Get().InteractiveObjects.Find(o => o.InteractiveGameObject.GetAssociatedGameObjectName() == EnemyObjectName); this.PlayerInteractiveObject = PlayerInteractiveObjectManager.Get().PlayerInteractiveObject; return(new ASequencedAction[] { new AIWarpActionV2(this.PlayerInteractiveObject, this.PlayerStartPosition, null) .Then(new WaitForSecondsAction(1.5f) .Then(new AIMoveToActionV2(this.PlayerTargetPosition, null, AIMovementSpeedAttenuationFactor.RUN, (strategy) => { this.PlayerInteractiveObject.SetDestination(strategy); }, this.PlayerInteractiveObject.SetAISpeedAttenuationFactor)) ) }); }
public override ASequencedAction[] BuildScenarioActions() { /// By default player has infinite health PlayerInteractiveObjectManager.Get().PlayerInteractiveObject.DealDamage(-99999999, null); var playerObject = PlayerInteractiveObjectManager.Get().PlayerInteractiveObject; var enemyObject = InteractiveObjectV2Manager.Get().InteractiveObjects.Find(o => o.InteractiveGameObject.GetAssociatedGameObjectName() == "GameObject"); return(new ASequencedAction[] { new ProjectileDeflectionTestScenarioAction(enemyObject, playerObject) .Then(new HealthGlobeRecoveryScenarioAction(playerObject)) }); }
private void StartTest() { this.TestControllerConfiguration.TestControllerDefinition.StartTest = false; var aTestScenarioDefinition = this.TestControllerConfiguration.TestControllerDefinition.aTestScenarioDefinition; this.TestEntitiesPrefabInstance = GameObject.Instantiate(aTestScenarioDefinition.TestEntitiesPrefab); aTestScenarioDefinition.BeforeObjectInitialization(); RangeObjectV2Manager.InitializeAllRangeObjects(); InteractiveObjectV2Manager.Get().InitializeAllInteractiveObjectsInitializer(); /// By default player has infinite health PlayerInteractiveObjectManager.Get().PlayerInteractiveObject.DealDamage(9999999, null); this.SequencedActionPlayer = new SequencedActionPlayer(aTestScenarioDefinition.BuildScenarioActions()); this.SequencedActionPlayer.Play(); }
public void OnTriggerExit(Collider other) { InteractiveObjectV2Manager.Get().InteractiveObjectsIndexedByLogicCollider.TryGetValue(other, out CoreInteractiveObject OtherInteractiveObject); if (OtherInteractiveObject != null && ((this.AssociatedInteractiveObject != null && OtherInteractiveObject != this.AssociatedInteractiveObject) || this.AssociatedInteractiveObject == null)) { this.CurrentlyTrackedColliders.Remove(other); var RangeObjectPhysicsTriggerInfo = new RangeObjectPhysicsTriggerInfo { Other = other, OtherInteractiveObject = OtherInteractiveObject }; for (var i = 0; i < this.PhysicsEventListeners.Count; i++) { if (this.PhysicsEventListeners[i].ColliderSelectionGuard(RangeObjectPhysicsTriggerInfo)) { this.PhysicsEventListeners[i].OnTriggerExit(RangeObjectPhysicsTriggerInfo); } } } }
public override ASequencedAction[] BuildScenarioActions() { this.EnemyObject = InteractiveObjectV2Manager.Get().InteractiveObjects.Find(o => o.InteractiveGameObject.GetAssociatedGameObjectName() == EnemyObjectName); this.PlayerInteractiveObject = PlayerInteractiveObjectManager.Get().PlayerInteractiveObject; return(new ASequencedAction[] { new AIWarpActionV2(this.PlayerInteractiveObject, this.Fire1PlayerPosition, null) .Then(new TargetAndFireToInteractiveObjectAction(this.EnemyObject) .Then(new AIMoveToActionV2(Vector3.zero, null, AIMovementSpeedAttenuationFactor.RUN, (strategy) => { this.PlayerInteractiveObject.SetDestination(strategy); }, this.PlayerInteractiveObject.SetAISpeedAttenuationFactor).Then(BuildWarpPlayerBehindEnemyAction()) .Then(new TargetAndFireToInteractiveObjectAction(this.EnemyObject) .Then(new AIWarpActionV2(this.PlayerInteractiveObject, Vector3.zero, null)) ) ) ) }); }
private void Tick() { if (Application.isPlaying) { var allInteractiveObjects = InteractiveObjectV2Manager.Get().InteractiveObjects; foreach (var interactiveObject in allInteractiveObjects) { OnInteractiveObjectCreated(interactiveObject); } var allRangeObjects = RangeObjectV2Manager.Get().RangeObjects; foreach (var rangeObject in allRangeObjects) { OnInteractiveObjectCreated(rangeObject); } SelectedInteractiveObjectDetail.OnGui(); } }
private void OnSearchTextChange(ChangeEvent <string> evt) { if (Application.isPlaying) { var allInteractiveObjects = InteractiveObjectV2Manager.Get().InteractiveObjects; var allRangeObjects = RangeObjectV2Manager.Get().RangeObjects; var allInteractiveObjectsClassname = allInteractiveObjects.ToList() .Select(i => i).Where(i => string.IsNullOrEmpty(SeachTextElement.text) || i.InteractiveGameObject.InteractiveGameObjectParent.name.ToLower().Contains(SeachTextElement.text.ToLower())).ToList() .ConvertAll(i => i.GetType().Name) .Union( allRangeObjects.Select(r => r).Where(r => string.IsNullOrEmpty(SeachTextElement.text) || r.RangeGameObjectV2.RangeGameObject.name.ToLower().Contains(SeachTextElement.text.ToLower())).ToList() .ConvertAll(r => r.GetType().Name) ) .ToList(); foreach (var classHeaderElement in ClassHeaderElements) { classHeaderElement.Value.style.display = allInteractiveObjectsClassname.Contains(classHeaderElement.Key) ? DisplayStyle.Flex : DisplayStyle.None; } } }
private void Start() { OnStart(); RangeObjectV2Manager.Get().Init(); GroundEffectsManagerV2.Get().Init(LevelManagementConfigurationGameObject.Get().LevelConfiguration.ConfigurationInherentData[LevelManager.Get().GetCurrentLevel()].LevelRangeEffectInherentData); InteractiveObjectV2Manager.Get().Init(); CameraMovementManager.Get().Init(); CircleFillBarRendererManager.Get().Init(); TutorialManager.Get().Init(); SelectableObjectManagerV2.Get().Init(GameInputManager.Get()); PlayerActionEntryPoint.Get().Init(); #if UNITY_EDITOR EditorOnlyManagers = new EditorOnlyManagers(); EditorOnlyManagers.Init(); #endif }
private void ClearTest() { this.TestControllerConfiguration.TestControllerDefinition.ClearTest = false; this.SequencedActionPlayer.Kill(); var allInteractiveObjects = InteractiveObjectV2Manager.Get().InteractiveObjects; List <RangeObjectV2> ExcludedRangesToDestroy = new List <RangeObjectV2>(); for (var i = allInteractiveObjects.Count - 1; i >= 0; i--) { //We dont remove the level chunk if (allInteractiveObjects[i].GetType() != typeof(LevelChunkInteractiveObject)) { allInteractiveObjects[i].Destroy(); } else { ExcludedRangesToDestroy.Add((allInteractiveObjects[i] as LevelChunkInteractiveObject).GetLevelChunkRangeObject()); } } for (var i = RangeObjectV2Manager.Get().RangeObjects.Count - 1; i >= 0; i--) { if (!ExcludedRangesToDestroy.Contains(RangeObjectV2Manager.Get().RangeObjects[i])) { RangeObjectV2Manager.Get().RangeObjects[i].OnDestroy(); } } MonoBehaviour.Destroy(TestEntitiesPrefabInstance); GameTestMockedInputManager.MockedInstance.GetGameTestMockedXInput().GameTestInputMockedValues.Reset(); ///Reset camera position CameraMovementJobManager.Get().SetTargetPosition(this.InitialCameraPivotPointTransform); CameraMovementJobManager.Get().SetCameraZoon(this.InitialCameraZoom); ///Reset time management TimeManagementManager.Get().Reset(); }
public void ManuallyDetectInsideColliders() { var overlappingCollider = PhysicsIntersection.BoxOverlapColliderWorld(this.RangeGameObjectV2.BoundingCollider as BoxCollider); if (overlappingCollider != null) { for (var i = 0; i < overlappingCollider.Length; i++) { InteractiveObjectV2Manager.Get().InteractiveObjectsIndexedByLogicCollider.TryGetValue(overlappingCollider[i], out CoreInteractiveObject interactiveObject); if (interactiveObject != null) { if (this.InteractiveObjectSelectionGuard.Invoke(new InteractiveObjectPhysicsTriggerInfo() { Other = overlappingCollider[i], OtherInteractiveObject = interactiveObject })) { // Debug.Log(MyLog.Format(interactiveObject.InteractiveGameObject.GetAssociatedGameObjectName())); this.OnTriggerEnter(interactiveObject); } } } } }
public void ManuallyDetectInsideColliders() { var overlappingCollider = Physics.OverlapSphere(this.RangeGameObjectV2.RangeGameObject.transform.localToWorldMatrix.MultiplyPoint(this.SphereBoundingCollider.center), this.SphereBoundingCollider.radius); if (overlappingCollider != null) { for (var i = 0; i < overlappingCollider.Length; i++) { InteractiveObjectV2Manager.Get().InteractiveObjectsIndexedByLogicCollider.TryGetValue(overlappingCollider[i], out CoreInteractiveObject interactiveObject); if (interactiveObject != null) { if (this.InteractiveObjectSelectionGuard.Invoke(new InteractiveObjectPhysicsTriggerInfo() { Other = overlappingCollider[i], OtherInteractiveObject = interactiveObject })) { this.OnTriggerEnter(interactiveObject); } } } } }
private void Update() { var d = Time.deltaTime; BeforeTick(d); TutorialManager.Get().Tick(d); PuzzleTutorialEventSenderManager.Get().Tick(d); BlockingCutscenePlayerManager.Get().Tick(d); PlayerActionEntryPoint.Get().Tick(d); PlayerInteractiveObjectManager.Get().Tick(d); PlayerInteractiveObjectManager.Get().AfterTicks(d); CameraMovementManager.Get().Tick(d); ObstacleOcclusionCalculationManagerV2.Get().Tick(d); RangeIntersectionCalculationManagerV2.Get().Tick(d); RangeObjectV2Manager.Get().Tick(d); InteractiveObjectV2Manager.Get().Tick(d); InteractiveObjectV2Manager.Get().AfterTicks(d); GroundEffectsManagerV2.Get().Tick(d); DottedLineRendererManager.Get().Tick(); SelectableObjectManagerV2.Get().Tick(d); CircleFillBarRendererManager.Get().Tick(d); #if UNITY_EDITOR EditorOnlyManagers.Tick(d); #endif }
public override ASequencedAction[] BuildScenarioActions() { CoreInteractiveObject targettedObject0 = null; CoreInteractiveObject targettedObject1 = null; CoreInteractiveObject targettedObject2 = null; IEM_ProjectileFireActionInput_Retriever playerInteractiveObject = PlayerInteractiveObjectManager.Get().PlayerInteractiveObject; foreach (var io in InteractiveObjectV2Manager.Get().InteractiveObjects) { if (io.InteractiveGameObject.GetAssociatedGameObjectName() == TestTargettedObjectName0) { targettedObject0 = io; } if (io.InteractiveGameObject.GetAssociatedGameObjectName() == TestTargettedObjectName1) { targettedObject1 = io; } if (io.InteractiveGameObject.GetAssociatedGameObjectName() == TestTargettedObjectName2) { targettedObject2 = io; } } GameObject AimPhysicsTestPoint0Object = GameObject.Find(AimPhysicsTestPoint0); GameObject AimPhysicsTestPoint1Object = GameObject.Find(AimPhysicsTestPoint1); return(new ASequencedAction[] { new EnsureTargetLockAction(playerInteractiveObject, targettedObject0) .Then(new Target_FireInteractiveObject_AndWait_Action(targettedObject0, new Target_FireInteractiveObject_AndWait_ActionDefintion(() => targettedObject0.IsAskingToBeDestroyed)) .Then(new EnsureTargetLockAction(playerInteractiveObject, targettedObject1) .Then(new Target_FireInteractiveObject_AndWait_Action(targettedObject1, new Target_FireInteractiveObject_AndWait_ActionDefintion(() => targettedObject1.IsAskingToBeDestroyed)) .Then(new EnsureTargetLockAction(playerInteractiveObject, targettedObject2) .Then(new Target_FireInteractiveObject_AndWait_Action(targettedObject2, new Target_FireInteractiveObject_AndWait_ActionDefintion(() => targettedObject2.IsAskingToBeDestroyed)) .Then(new WaitForSecondsAction(0.5f) .Then(new TimeFreezePressedAction() .Then(new StartAimingAction() .Then(new MoveTargetCursorSmoothScreenPosition( new MoveTargetCursorSmoothScreenPositionData(Camera.main.ScreenToViewportPoint(TargetCursorManager.Get().GetTargetCursorScreenPosition()), Camera.main.WorldToViewportPoint(AimPhysicsTestPoint0Object.transform.position), 0.1f)) .Then(new StopAimingAction() .Then(new TimeFreezePressedAction() .Then(new StartAimingAction() .Then(new MoveTargetCursorSmoothScreenPosition( new MoveTargetCursorSmoothScreenPositionData(new Vector2(0.5f, 0.5f), Camera.main.WorldToViewportPoint(AimPhysicsTestPoint0Object.transform.position), 0.1f))) ) ) ) ) )) ) ) ) ) ) ) }); }