示例#1
0
 public override void ObjectExitTrigger(InteractableElement ie, Object o)
 {
     if (ie is FootInteruptor)
     {
         if ((ie as FootInteruptor).CurrentState() != FootInteruptor.eInteruptorState.Down)
         {
             return;
         }
         if (ie.name == "Inter10")
         {
             trigger1Ok = false;
         }
         else if (ie.name == "Inter11")
         {
             trigger2Ok = false;
         }
         else if (ie.name == "Inter12")
         {
             trigger3Ok = false;
         }
         else if (ie.name == "Inter13")
         {
             trigger4Ok = false;
         }
         else if (ie.name == "Inter14")
         {
             trigger5Ok = false;
         }
     }
 }
示例#2
0
    public override void OnInteraction(InteractableElement ie, Player p)
    {
        int toLoad;

        if (ie.name == "DoorLv1")
        {
            toLoad = 0;
        }
        else if (ie.name == "DoorLv2")
        {
            toLoad = 1;
        }
        else //  if(ie.name == "DoorLv3")
        {
            toLoad = 2;
        }

        if (loader.VisibleEnigmas[0] != null)
        {
            SceneLoader scene = FindObjectOfType <SceneLoader>();
            Assert.IsNotNull(scene, "Cannot found SceneLoader !");

            scene.LoadScene(loader.VisibleEnigmas[toLoad].Scene);
        }
        else
        {
            Debug.LogError("Cannot open door " + (toLoad + 1) + " because theres no engima behind");
        }
    }
示例#3
0
 public override void ObjectExitTrigger(InteractableElement ie, Object o)
 {
     if (!crateOK && ie.name == "FootInteruptorYellow" && o is Player)
     {
         crate.SetActive(false);
     }
 }
示例#4
0
    public void Interact()
    {
        InteractableElement skript = _current_collided_object.GetComponent <InteractableElement>();

        if (skript)
        {
            if (skript.Type == "Table")
            {
                Table table = _current_collided_object.GetComponent <Table>();
                if (!table.isOccupied)
                {
                    //leave item
                    if (_current_item)
                    {
                        table.SpawnObject(_current_item);
                        _current_item = null;
                        _holding_item = null;

                        Item item = GetComponentInChildren <Item>();
                        Destroy(item.gameObject);
                    }
                }
                else
                {
                    //take item
                    if (!_current_item)
                    {
                        takeItem(table.TakeObject());
                    }
                }
            }
            if (skript.Type == "spawn")
            {
                ItemSpawn spawn = _current_collided_object.GetComponent <ItemSpawn>();
                if (spawn._canSpawn && !_current_item)
                {
                    takeItem(spawn.getItem());
                }
            }

            //Machine
            if (_curr_machine)
            {
                if (!_curr_machine.is_occupied)
                {
                    _curr_machine.PutItem(_holding_item.gameObject);
                    _current_item = null;
                    _holding_item = null;

                    Item item = GetComponentInChildren <Item>();
                    Destroy(item.gameObject);
                }
                else
                {
                    takeItem(_curr_machine.RemoveItem());
                }
            }
        }
    }
示例#5
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (ie.GetType() != typeof(Lever) && o is Player)
     {
         Player p = o as Player;
         mgr.RemovePlayer(p.Username);
     }
 }
示例#6
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (!crateOK &&
         (ie.name == "FootInteruptorYellow" && o is Player) ||
         (ie.name == "RespawnCrateTrigger" && o is GrabbableElement))
     {
         ResetCrate();
     }
 }
示例#7
0
    public override void ObjectExitTrigger(InteractableElement ie, Object o)
    {
        FootInteruptor fi = ie as FootInteruptor;

        if (fi.CurrentState() == FootInteruptor.eInteruptorState.Down) // if not already released
        {
            i--;
        }
    }
示例#8
0
 public override void ObjectExitTrigger(InteractableElement ie, Object o)
 {
     if (ie is FootInteruptor)
     {
         if (ie.name == "Inter20")
         {
             triggerOk = false;
         }
     }
 }
示例#9
0
    public override void OnInteraction(InteractableElement ie, Player p)
    {
        if (button == null)
        {
            button = ie as HandButton;
        }

        button.SetState(HandButton.eButtonState.Green);
        switchBack = 10;
        RequestNextPage();
    }
示例#10
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (ie is FootInteruptor)
     {
         FootInteruptor fi = ie as FootInteruptor;
         if (fi.CurrentState() == FootInteruptor.eInteruptorState.Up) // if not already pressed
         {
             switchCount++;
         }
     }
 }
示例#11
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     if (ie is LockedWall)
     {
         LockedWall w = ie as LockedWall;
         if (p.HeldElement.ItemID == 1)
         {
             p.DeleteHeldItem();
             w.Open();
         }
     }
 }
示例#12
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (o is GrabbableElement)
     {
         GrabbableElement c = o as GrabbableElement;
         Player           p = c.GetComponentInParent <Player> ();
         if (p != null)
         {
             p.ReleaseGrabbedElement();
         }
         c.transform.position = new Vector3(-8.5f, 3.5f, 0f);
     }
 }
示例#13
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (ie is FootInteruptor)
     {
         if (ie.name == "Inter01")
         {
             trigger1Ok = true;
         }
         else if (ie.name == "Inter02")
         {
             trigger2Ok = true;
         }
     }
 }
示例#14
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     if (ie is Door)
     {
         if (doorOpen)
         {
             Utils.LoadScene("Scene/EnigmaClear");
         }
         else
         {
             p.SendGameTip(ie.name, " As tu actionné TOUS les intterupteurs ?");
         }
     }
 }
示例#15
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     if (ie.GetType() == typeof(Lever))
     {
         if (ie.name == "LeverStart" && PlayerMgr.Instance().Players.Length >= 2)
         {
             loader.LoadScene("Scene/EnigmaSelect");
         }
         if (ie.name == "LeverTest")
         {
             loader.LoadScene("Scene/Test");
         }
     }
 }
示例#16
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (o is Player)
     {
         Player p = (Player)o;
         if (ie.name == "TriggerArea1")
         {
             p.SendGameTip("indice", " Jette un coup d'oeil au dessus :)");
         }
         if (ie.name == "TriggerArea2")
         {
             p.SendGameTip("indice", "Tout à gauche");
         }
     }
 }
示例#17
0
    public override void OnInteraction(InteractableElement ie, Player p)
    {
        SceneLoader loader = FindObjectOfType <SceneLoader>();

        Assert.IsNotNull(loader, "Cannot found SceneLoader !");

        if (ie.name == "MenuDoor")
        {
            loader.LoadScene("Scene/Menu");
        }
        else if (ie.name == "SecretDoor")
        {
            loader.LoadScene("Test");
        }
    }
示例#18
0
 public override void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
     if (o is Player)
     {
         Player p = o as Player;
         if (ie.name == "CrateTipArea")
         {
             p.SendGameTip("Info", "Les humains ne peuvent passer ...");
         }
         else if (ie.name == "HiddenSwitchTipArea")
         {
             p.SendGameTip("Info", "Il y a quelque chose à droite.");
         }
     }
 }
示例#19
0
    public override void OnInteraction(InteractableElement ie, Player p)
    {
        Lever l = ie as Lever;

        if (l != null)
        {
            if (currentDiff == eDifficulty.Easy)
            {
                currentDiff = eDifficulty.Normal;
            }
            else // (currentDiff == eDifficulty.Normal)
            {
                currentDiff = eDifficulty.Easy;
                l.SetState(Lever.eLeverState.Left);
            }

            //OnDifficultyChanged(currentDiff);
            UpdateText();
            OnDifficultyChanged(currentDiff);
        }
    }
示例#20
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     if (ie.name == "Lever1")
     {
         if (floor1.activeSelf)
         {
             floor1.SetActive(false);
             i--;
         }
         else if (i < 2)
         {
             floor1.SetActive(true);
             i++;
         }
     }
     else if (ie.name == "Lever2")
     {
         if (floor2.activeSelf)
         {
             floor2.SetActive(false);
             i--;
         }
         else if (i < 2)
         {
             floor2.SetActive(true);
             i++;
         }
     }
     else if (ie.name == "Lever3")
     {
         if (floor3.activeSelf)
         {
             floor3.SetActive(false);
             i--;
         }
         else if (i < 2)
         {
             floor3.SetActive(true);
             i++;
         }
     }
     else if (ie.name == "Lever4")
     {
         if (floor4.activeSelf)
         {
             floor4.SetActive(false);
             i--;
         }
         else if (i < 2)
         {
             floor4.SetActive(true);
             i++;
         }
     }
     else if (ie.name == "Lever5")
     {
         if (floor5.activeSelf)
         {
             floor5.SetActive(false);
             i--;
         }
         else if (i < 2)
         {
             floor5.SetActive(true);
             i++;
         }
     }
 }
示例#21
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     Utils.LoadScene("EnigmaSelect");
 }
示例#22
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     Utils.LoadScene("Scene/EnigmaClear");
 }
示例#23
0
 public override void OnInteraction(InteractableElement ie, Player p)
 {
     p.SendGameTip(ie.name, p.Username + " m'a actionner !");
 }
示例#24
0
 public virtual void OnInteraction(InteractableElement ie, Player p)
 {
 }
示例#25
0
 public virtual void ObjectEnterTrigger(InteractableElement ie, Object o)
 {
 }