protected override void OnCollisionEnter(Collision collision) { //quand l'objet est touché par un autre objet lancé if (collision.gameObject.tag == "BringObject") { BringObject otherObject = collision.gameObject.GetComponent <BringObject>(); if (otherObject.GetObjectReglages().IsBreakingThings&& otherObject.IsLaunch) { StartBreaking(); } } //quand on lance l'objet if (!IsLaunch) { return; } StartBreaking(); if (collision.gameObject.tag == "PNJ") { PnjManager pnj = collision.gameObject.GetComponent <PnjManager>(); StartHurting(pnj); } else if (collision.gameObject.name == "Terrain") { StartCoroutine(StopOnGround()); } }
public PnjDialogueState(ObjectManager curObject) : base(curObject) { stateName = "PNJ_DIALOGUE_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; baseRotation = curPnj.transform.rotation; }
void ApplyPnjSwitchBehavior() { if (characterConcerned == PnjManager.CharacterType.none) { return; } PnjManager pnj = EventManager.Instance.GetPNJ(characterConcerned); switch (actionChoice) { case CharacterAction.Boude: break; case CharacterAction.PursuitPlayer: pnj.ChangeState(new PursuitPlayerState(pnj, pnj.GetCurrentState())); break; case CharacterAction.GoToPlace: Vector3 pnjDesiredPosition = GameManager.Instance.GetInterestPointManager().GetInterestPointPosition(placeConcerned); pnj.ChangeState(new WanderAroundState(pnj, pnjDesiredPosition)); break; case CharacterAction.WaitingForObject: pnj.IsWaitingObject = boolModificator; break; } }
public PnjMoveToPositionState(ObjectManager curObject, Vector3 target) : base(curObject) { stateName = "PNJ_MOVE_TO_PLACE_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; this.target = target; agent = curPnj.GetAgent(); }
public WanderAroundState(ObjectManager curObject) : base(curObject) { stateName = "WANDER_AROUND_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; wanderTimer = Random.Range(2f, 5f); wanderRadius = Random.Range(2f, 3f); timer = wanderTimer; }
public PnjDialogueState(ObjectManager curObject, PlayerManager player, State prevState) : base(curObject) { stateName = "PNJ_DIALOGUE_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; baseRotation = curPnj.transform.rotation; curPlayer = player; this.prevState = prevState; }
public PursuitPlayerState(ObjectManager curObject) : base(curObject) { stateName = "PURSUIT_PLAYER_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; curPlayer = PlayerManager.instance; agent = curPnj.GetAgent(); baseSpeed = agent.speed; }
public void StartHurting(PnjManager pnj) { if (!reglages.IsHurting) { return; } //event____________ pnj.HurtingEvent(); }
public PlayerDialogueState(ObjectManager curObject, GameObject pnj, State prevState) : base(curObject) { stateName = "PLAYER_DIALOGUE_STATE"; this.curObject = curObject; manager= (PlayerManager)this.curObject; this.pnj = pnj.GetComponent<PnjManager>(); this.prevState = prevState; dialogueUiManager = DialogueUiManager.Instance; }
public WanderAroundState(ObjectManager curObject, Vector3 target) : base(curObject) { stateName = "WANDER_AROUND_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; wanderTimer = Random.Range(2f, 5f); wanderRadius = Random.Range(2f, 3f); timer = wanderTimer; this.target = target; maxDistanceFromTarget = wanderRadius * 2.1f; }
public PnjManager GetPNJ(PnjManager.CharacterType concerned) { PnjManager returnVal = null; foreach (var item in pnjs) { if (item.GetCharacterType() == concerned) { returnVal = item; } } return(returnVal); }
protected virtual void OnCollisionEnter(Collision collision) { //quand l'objet est touché par un autre objet lancé if ((collision.gameObject.tag == "BringObject") || (collision.gameObject.tag == "InteractToolObject")) { BringObject otherObject = collision.gameObject.GetComponent <BringObject>(); if (otherObject.GetObjectReglages().IsBreakingThings&& otherObject.IsLaunch) { StartBreaking(); } } //quand on lance l'objet if (!IsLaunch) { return; } StartBreaking(); if (collision.gameObject.tag == "PNJ") { PnjManager pnj = collision.gameObject.GetComponent <PnjManager>(); StartHurting(pnj); } }
protected void OnTriggerEnter(Collider collision) { if (!IsUsingObject) { return; } //quand l'objet est touché par un autre objet lancé if (collision.gameObject.tag == "BringObject") { BringObject otherObject = collision.gameObject.GetComponent <BringObject>(); if (reglages.IsBreakingThings && otherObject.GetReglages().IsBreaking) { otherObject.StartBreaking(); } } else if (collision.gameObject.tag == "InteractToolObject" && collision.gameObject.GetComponent <InteractObject>().objectType == ObjectType.MusicStone) { collision.gameObject.GetComponent <MusicStone>().BreakMusicStone(); } else if (collision.gameObject.tag == "Tree") { if (collision.GetComponentInChildren <TreeStickSpawner>() != null) { collision.GetComponentInChildren <TreeStickSpawner>().SpawnStick(); } } StartBreaking(); if (collision.gameObject.tag == "PNJ") { PnjManager pnj = collision.gameObject.GetComponent <PnjManager>(); StartHurting(pnj); } if ((collision.gameObject.name != "Terrain") && (collision.gameObject.tag != "Player") && (collision.gameObject.tag != "TOOL") && (collision.gameObject.tag != "Patoune")) { EndUseObjectOnCollision(); } }
public bool IsBringingWaitingObject(PnjManager pnj, InteractObject obj) { return(pnj.SpecialObjectEvent(obj)); }
public void ApplyConsequence() { switch (consequence) { case Consequence.ConsequenceType.PnjChangeBehavior: ApplyPnjSwitchBehavior(); break; case Consequence.ConsequenceType.PnjChangeMood: if (characterConcerned != PnjManager.CharacterType.none) { PnjManager pnjConcerned = EventManager.Instance.GetPNJ(characterConcerned); if (pnjConcerned == null) { return; } pnjConcerned.CurrentMood = mood; } break; case Consequence.ConsequenceType.AddDialogue: if (characterConcerned != PnjManager.CharacterType.none) { PnjManager pnjConcerned = EventManager.Instance.GetPNJ(characterConcerned); if ((pnjConcerned == null) || (dialogueConcerned == null)) { return; } pnjConcerned.dialogueManager.AddDialogue(dialogueConcerned); } break; case Consequence.ConsequenceType.RemoveDialogue: if (characterConcerned != PnjManager.CharacterType.none) { PnjManager pnjConcerned = EventManager.Instance.GetPNJ(characterConcerned); if ((pnjConcerned == null) || (dialogueConcerned == null)) { return; } pnjConcerned.dialogueManager.RemoveDialogue(dialogueConcerned); } break; case Consequence.ConsequenceType.AutorisationTakeObject: // objectConcerned.GetComponent<InteractObject>().CanTakeObject = true; List <InteractObject> concerned = EventManager.Instance.GetObjectOfType(objectConcerned, characterConcerned); foreach (var item in concerned) { item.CanTakeObject = true; } break; case Consequence.ConsequenceType.RemoveAutorisationTakeObject: concerned = EventManager.Instance.GetObjectOfType(objectConcerned, characterConcerned); foreach (var item in concerned) { item.CanTakeObject = false; } break; case Consequence.ConsequenceType.AutorisationInteractionObject: concerned = EventManager.Instance.GetObjectOfType(objectConcerned, characterConcerned); foreach (var item in concerned) { item.CanInteract = true; } break; case Consequence.ConsequenceType.RemoveAutorisationInteractionObject: concerned = EventManager.Instance.GetObjectOfType(objectConcerned, characterConcerned); foreach (var item in concerned) { item.CanInteract = false; } break; case Consequence.ConsequenceType.GainKey: //SFX AkSoundEngine.PostEvent("UI_quest_success", GameManager.Instance.gameObject); GameManager.Instance.AddKey(intModificator); break; case Consequence.ConsequenceType.RemoveKey: GameManager.Instance.RemoveKey(intModificator); break; case Consequence.ConsequenceType.StrangerApparition: EventManager.Instance.StrangerApparitionEvent(); break; case Consequence.ConsequenceType.StrangerApparitionAtPoint: Vector3 pnjDesiredPosition = GameManager.Instance.GetInterestPointManager().GetInterestPointPosition(placeConcerned); EventManager.Instance.StrangerWaitAtPositionEvent(pnjDesiredPosition); break; } }
public PnjMoveToPositionState(ObjectManager curObject) : base(curObject) { stateName = "PNJ_MOVE_TO_PLACE_STATE"; this.curObject = curObject; curPnj = (PnjManager)this.curObject; }