public override void Interact(GameObject otherActor) { if (otherActor.tag == "Player") { if (currentState == State.Idle) { PlayerInteractionController playerControllerScript = (PlayerInteractionController)otherActor.GetComponent(typeof(PlayerInteractionController)); if (playerControllerScript != null) { //Get the object held by the player. GameObject objectToHold = playerControllerScript.GetHeldObject(); if (objectToHold != null) { FishController heldObjectControllerScript = (FishController)objectToHold.GetComponent(typeof(FishController)); if (heldObjectControllerScript != null) { playerControllerScript.DropObject(); heldObjectControllerScript.PutIn(); } fishController = heldObjectControllerScript; currentState = State.Disposing; currentTime = 0f; teleportDuration = speedCurve.keys[speedCurve.length - 1].time; teleportDirection = (disposalPoint.position - fishController.gameObject.transform.position).normalized; teleportDistance = Vector3.Distance(disposalPoint.position, fishController.gameObject.transform.position); } } } } }
public override void Interact(PlayerInteractionController interactionController) { interactionController.DeinteractWithCurrentObject(); if (IsLocked == false) { if (lockedForOthers == false) { lockedForOthers = true; Set_LockingState(true); Set_OnSetEnableStateCollider(false); photonView.TransferOwnership(PhotonNetwork.LocalPlayer); } if (interactionController.currentlyWielding != null) { if (interactionController.currentlyWielding != this) { interactionController.DropObject(interactionController.currentlyWielding); } } interactionController.PickupObject(this, pickup_Offset, rotation_Offset); } }
public override void DeInteract(PlayerInteractionController interactionController) { if (lockedForOthers == true) { lockedForOthers = false; Set_LockingState(false); interactionController.DropObject(this); Set_OnSetEnableStateCollider(true); } }
override public void Interact(GameObject otherActor) { if (otherActor.tag == "Player") { //Make sure the station is not currently controlled by another player. if (!this.IsActivated) { if (GameController.Obj.isTutorial) { TutorialManager.Obj.hasActivatedAquarium = true; } PlayerInteractionController playerInteractionControllerScript = otherActor.GetComponent <PlayerInteractionController>(); if (playerInteractionControllerScript != null) { //Get the object held by the player. GameObject objectToHold = playerInteractionControllerScript.GetHeldObject(); //Attempt to deposit the fish into the aquarium if the player is holding one. if (objectToHold != null) { FishController heldObjectControllerScript = objectToHold.GetComponent <FishController>(); if (heldObjectControllerScript != null) { if (heldObjectControllerScript.IsDead()) { ShowWarningText("This fish is dead!"); } else if (!IsFishTypeStoreable(heldObjectControllerScript.fishType)) { ShowWarningText("This fish is not part of the list!"); } else { //Only allow the player to put a fish into the aquarium if they have researched the required amount for the species. if (GameData.GetFishParameters(heldObjectControllerScript.fishType).totalResearched == GameData.GetFishParameters(heldObjectControllerScript.fishType).totalToResearch) { playerInteractionControllerScript.DropObject(); StoreFish(objectToHold, heldObjectControllerScript.fishType); } else { ShowWarningText("Please complete the required number of researches for this species first!"); } } } } //Man the aquarium station otherwise. else { EngagePlayer(otherActor); } } } } }
override public void Interact(GameObject otherActor) { if (otherActor.tag == "Player") { if (currentState == State.Empty) { PlayerInteractionController playerControllerScript = (PlayerInteractionController)otherActor.GetComponent(typeof(PlayerInteractionController)); if (playerControllerScript != null) { //Get the object held by the player. GameObject objectToHold = playerControllerScript.GetHeldObject(); if (objectToHold != null) { FishController heldObjectControllerScript = (FishController)objectToHold.GetComponent(typeof(FishController)); if (heldObjectControllerScript != null) { playerControllerScript.DropObject(); heldObjectControllerScript.PutIn(); heldObjectControllerScript.StartSlowPanic(); holdObject(objectToHold); returnStationController.Activate(heldObjectControllerScript); labNavController.SetWireframe(heldObjectControllerScript.fishType); } } } } else if (currentState == State.Holding) { PlayerInteractionController playerControllerScript = (PlayerInteractionController)otherActor.GetComponent(typeof(PlayerInteractionController)); if (playerControllerScript != null) { //Check that the player is not already holding on to something. if (playerControllerScript.GetHeldObject() == null) { if (heldObject != null) { playerControllerScript.PickUpObject(heldObject); removeHeldObject(); returnStationController.Deactivate(); labNavController.SetWireframe(GameData.FishType.None); } } } } } }
public override void Interact(PlayerInteractionController interactionController) { DeInteract(interactionController); if (IsLocked == true) { return; } LockTemporarily(); if (interactionController.currentlyWielding) { if (DoesAllowForObjectID(interactionController.currentlyWielding.toolID)) { if (interactionController.currentlyWielding.GetType() == typeof(WieldableCleanableObject)) { WieldableCleanableObject wieldable = (WieldableCleanableObject)interactionController.currentlyWielding; if (wieldable.isCleaned) { interactionController.DropObject(wieldable); wieldable.StoreObject(); ObjectPool.Set_ObjectBackToPool(wieldable.photonView.ViewID); return; } Set_DisplayStateTooltip((int)TooltipType.NotCleanedItem); } //NOTE: No Warning here because we assume that the storage can only store cleanable objects... } Set_DisplayStateTooltip((int)TooltipType.WrongItem); return; } Set_DisplayStateTooltip((int)TooltipType.NoItem); return; }
override public void Interact(GameObject otherActor) { if (otherActor.tag == "Player") { PlayerInteractionController playerControllerScript = null; if (currentState == State.Empty) { playerControllerScript = otherActor.GetComponent <PlayerInteractionController>(); if (playerControllerScript != null) { //Get the object held by the player. heldObject = playerControllerScript.GetHeldObject(); if (heldObject != null) { FishController heldObjectControllerScript = heldObject.GetComponent <FishController>(); if (heldObjectControllerScript != null) { if (!heldObjectControllerScript.IsDead()) { if (heldObjectControllerScript.IsCurrentResearchProtocol(researchStationType)) { playerControllerScript.DropObject(); heldObjectControllerScript.PutIn(); heldObject.transform.SetParent(holdSlot.transform, true); heldObject.transform.localPosition = Vector3.zero; currentState = State.Holding; heldObjectControllerScript.StartFastPanic(); } } } } } } if (currentState == State.Holding) { playerControllerInStation = otherActor.GetComponent <PlayerController>(); playerControllerInStation.RequestControlChange(GameData.ControlType.STATION); playerControllerScript = otherActor.GetComponent <PlayerInteractionController>(); if (researchStationType == GameData.StationType.Sample && GameController.Obj.isTutorial) { if (TutorialManager.Obj.currentStep == 8) { TutorialManager.Obj.hasUsedDissectStation = true; } } if (playerControllerScript != null) { //Check that the player is not already holding on to something. if (playerControllerScript.GetHeldObject() == null) { if (heldObject != null) { if (!worldspaceCanvas.activeSelf) { worldspaceCanvas.SetActive(true); } currentState = State.Working; } } } } else if (currentState == State.Working) { playerControllerScript = playerControllerInStation.interactionController; if (playerControllerScript != null) { if (progressMade < MAX_PROGRESS) { progressMade += PROGRESS_BAR_PER_INTERACTION; interactionProgressMade += PROGRESS_BAR_PER_INTERACTION; buttonPromptController.Depress(); buttonParticleController.Fire(); progressBarController.Explode(); } // If progress made is maxed and // the the player is not already holding on to something. else if (playerControllerScript.GetHeldObject() == null) { if (heldObject != null) { FishController heldObjectControllerScript = (FishController)heldObject.GetComponent(typeof(FishController)); if (heldObjectControllerScript.GetCurrentResearchProtocol() == researchStationType) { heldObjectControllerScript.ResearchFish(); } playerControllerInStation.ReturnControlToCharacter(); playerControllerScript.PickUpObject(heldObject); playerControllerInStation = null; heldObject = null; progressMade = interactionProgressMade = 0f; currentState = State.Empty; worldspaceCanvas.SetActive(false); if (researchStationType == GameData.StationType.Sample && GameController.Obj.isTutorial) { if (TutorialManager.Obj.currentStep == 9) { TutorialManager.Obj.hasFinishedDissectStation = true; } } } } } } } }
public override void Interact(PlayerInteractionController interactionController) { if (currentState == StateOfObject.Washing || ownedByTeam != (OwnedByTeam)NetworkManager.localPlayerInformation.team) { Set_DisplayStateTooltip((int)TooltipType.BusyWashing); DeInteract(interactionController); return; } photonView.TransferOwnership(PhotonNetwork.LocalPlayer); if (currentState == StateOfObject.Inactive) { if (interactionController.currentlyWielding) { if (acceptedItemIds.Contains(interactionController.currentlyWielding.toolID)) { if (allContainedObjects.Count < maxSlotsAvailable) { if (!allContainedObjects.Contains(interactionController.currentlyWielding.transform)) { int viewID = interactionController.currentlyWielding.photonView.ViewID; interactionController.DropObject(interactionController.currentlyWielding); Set_StoreObject(viewID, false); Set_DishwasherOpenState(true); return; } } Set_DisplayStateTooltip((int)TooltipType.ObjectIsFull); return; } Set_DisplayStateTooltip((int)TooltipType.WrongItemInHands); return; } if (allContainedObjects.Count > 0) { StartWashing(); Set_DishwasherOpenState(false); return; } Set_DisplayStateTooltip((int)TooltipType.StorageEmpty); } if (currentState == StateOfObject.Done) { if (interactionController.currentlyWielding == null) { if (allContainedObjects.Count > 0) { Set_DishwasherOpenState(true); WieldableCleanableObject toStore = NetworkManager.GetViewByID(allContainedObjects[0].gameObject.GetPhotonView().ViewID).GetComponent <WieldableCleanableObject>(); Set_PickupObject(allContainedObjects[0].gameObject.GetPhotonView().ViewID); Set_GrabItemFromObject(allContainedObjects[0].gameObject.GetPhotonView().ViewID); toStore.transform.localPosition = Vector3.zero; interactionController.currentSelected = this; if (allContainedObjects.Count == 0) { if (postcleanLoop != null) { StopCoroutine(postcleanLoop); } Set_EnableStateWarningProgressbar(false); Set_StateOfObject(StateOfObject.Inactive); } toStore.Interact(interactionController); return; } } Set_DisplayStateTooltip((int)TooltipType.HandsFull); } }