Exemplo n.º 1
0
 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());
     }
 }
Exemplo n.º 2
0
 public PnjDialogueState(ObjectManager curObject) : base(curObject)
 {
     stateName      = "PNJ_DIALOGUE_STATE";
     this.curObject = curObject;
     curPnj         = (PnjManager)this.curObject;
     baseRotation   = curPnj.transform.rotation;
 }
Exemplo n.º 3
0
    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;
        }
    }
Exemplo n.º 4
0
 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();
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
 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;
 }
Exemplo n.º 8
0
 public void StartHurting(PnjManager pnj)
 {
     if (!reglages.IsHurting)
     {
         return;
     }
     //event____________
     pnj.HurtingEvent();
 }
Exemplo n.º 9
0
 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;
 }
Exemplo n.º 10
0
 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;
 }
Exemplo n.º 11
0
    public PnjManager GetPNJ(PnjManager.CharacterType concerned)
    {
        PnjManager returnVal = null;

        foreach (var item in pnjs)
        {
            if (item.GetCharacterType() == concerned)
            {
                returnVal = item;
            }
        }
        return(returnVal);
    }
Exemplo n.º 12
0
 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);
     }
 }
Exemplo n.º 13
0
 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();
     }
 }
Exemplo n.º 14
0
 public bool IsBringingWaitingObject(PnjManager pnj, InteractObject obj)
 {
     return(pnj.SpecialObjectEvent(obj));
 }
Exemplo n.º 15
0
    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;
        }
    }
Exemplo n.º 16
0
 public PnjMoveToPositionState(ObjectManager curObject) : base(curObject)
 {
     stateName      = "PNJ_MOVE_TO_PLACE_STATE";
     this.curObject = curObject;
     curPnj         = (PnjManager)this.curObject;
 }