コード例 #1
0
        public override void AttachScreen(EntityScreen screen)
        {
            base.AttachScreen(screen);

            playerInteractor = new PlayerInteractor();
            Url = "/api/floorball/players/{id}";
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: lfrankel/GGJ2020
 private void Start()
 {
     m_body       = gameObject.GetComponent <Rigidbody>();
     m_interactor = gameObject.GetComponentInChildren <PlayerInteractor>();
     GameManager.get().RegisterPlayer(this);
     m_desiredDirection = transform.forward;
 }
コード例 #3
0
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     if (heldObject == null)
     {
         player.SetHeldObject(this, true);
     }
 }
コード例 #4
0
    public void passturn()
    {
        float foodn    = resources.food;
        float orangesn = resources.oranges;
        float watern   = resources.water;
        float boozen   = resources.booze;
        float goldn    = resources.gold;


        resources.dirtiness++;

        PlayerInteractor.UpdatePlayerChoices();
        turncount++;
        EventManagerList.Turn();

        Illness.TurnDisease(pirates);

        foreach (pirate p in pirates)
        {
            p.eat(FoodState);
            p.drink(WaterState);
        }
        checkdead();
        PlayerInteractor.UpdateReport(foodn - resources.food, watern - resources.water, orangesn - resources.oranges, boozen - resources.booze, goldn - resources.gold, pirates);
    }
コード例 #5
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Interacter")
     {
         playerInteractor = collision.GetComponent <PlayerInteractor>();
     }
 }
コード例 #6
0
 protected void OnTriggerEnter(Collider other)
 {
     if (other.transform.CompareTag(playerTag))
     {
         playerRef = other.transform.GetComponent <PlayerInteractor>();
     }
 }
コード例 #7
0
    private void UpdatePlayerToActive(PlayerInteractor playerInteractor, InRangeListener active)
    {
        var playerIndex = playerInteractor.Player.PlayerIndex;

        if (!_playerToActive.ContainsKey(playerInteractor))
        {
            _playerToActive.Add(playerInteractor, active);

            if (active != null)
            {
                active.NotifyInRange(playerIndex);
            }

            return;
        }

        _playerToActive[playerInteractor]?.NotifyOutOfRange(playerIndex);
        _playerToActive[playerInteractor] = active;

        if (active == null)
        {
            return;
        }
        active.NotifyInRange(playerIndex);
    }
コード例 #8
0
 void Start()
 {
     entry1.RegisterCoordinator(this, startDisabled);
     entry2.RegisterCoordinator(this, startDisabled);
     _playerNavMesh    = player.GetComponent <NavMeshAgent>();
     _playerInteractor = player.GetComponent <PlayerInteractor>();
     _playerController = player.GetComponent <PlayerController>();
 }
コード例 #9
0
ファイル: CatBowl.cs プロジェクト: Ittaimann/GGJ2019
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     base.Interact(heldObject, player);
     if (heldObject is CatFood)
     {
         catFood.SetActive(true);
         gameDataScriptable.foodReady = true;
     }
 }
コード例 #10
0
ファイル: Fridge.cs プロジェクト: Ittaimann/GGJ2019
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     if (heldObject is RawFood)
     {
         return;
     }
     player.Drop();
     player.SetHeldObject(Instantiate(foodPrefab, player.transform.position, Quaternion.identity), true);
 }
コード例 #11
0
ファイル: Shower.cs プロジェクト: Ittaimann/GGJ2019
    public override void Interact(Pickup heldObject, PlayerInteractor player)
    {
        if (gameDataScriptable.gotDressed)
        {
            gameDataScriptable.gotDressed = false;
        }
        gameDataScriptable.tookShower = true;

        StartCoroutine(TakeShower(player.transform.parent));
    }
コード例 #12
0
ファイル: PlayerMovement.cs プロジェクト: Ittaimann/GGJ2019
    // Start is called before the first frame update
    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible   = false;

        rigid            = GetComponent <Rigidbody>();
        cameraHolder     = GetComponentInChildren <Camera>().transform;
        foostepSource    = GetComponent <AudioSource>();
        previousPosition = transform.position;
        interactor       = GetComponentInChildren <PlayerInteractor>();
    }
コード例 #13
0
ファイル: PlayerController.cs プロジェクト: fengye/Lumosis
    // Use this for initialization
    void Start()
    {
        physics    = GetComponent <PlayerPhysics>();
        interactor = GetComponent <PlayerInteractor>();
        metrics    = GetComponent <PlayerMetrics>();

        system = GetComponentInChildren <ParticleSystem>();
        trail  = GetComponentInChildren <TrailRenderer>();

        createdTime = Time.time;
    }
コード例 #14
0
 protected void OnTriggerExit(Collider other)
 {
     if (other.transform.CompareTag(playerTag) && playerRef)
     {
         if (playerRef.closestInteract == this)
         {
             playerRef.closestInteract = null;
         }
         playerRef = null;
     }
 }
コード例 #15
0
ファイル: Interactable.cs プロジェクト: marquesbelem/wgj-2020
 public void InteractWith(PlayerInteractor interactor)
 {
     onInteract.Invoke();
     if (collectableRef != null)
     {
         collectableRef.InteractWith(interactor);
     }
     if (deliverSlotRef != null)
     {
         deliverSlotRef.InteractWith(interactor);
     }
 }
コード例 #16
0
ファイル: Toilet.cs プロジェクト: Ittaimann/GGJ2019
    public override void Interact(Pickup heldObject, PlayerInteractor player)
    {
        base.Interact(heldObject, player);
        if (!canUse)
        {
            return;
        }
        gameDataScriptable.usedToilet = true;
        StartCoroutine(UseToilet(player.transform.parent.gameObject));

        //bathroom complete
    }
コード例 #17
0
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     if (heldObject is CoffeeCup && coffeeMade)
     {
         heldObject.GetComponent <CoffeeCup>().hasCoffee = true;
         print("picked up coffee");
     }
     else if (!coffeeMade && !makingCoffee)
     {
         StartCoroutine(MakeCoffee());
     }
 }
コード例 #18
0
    private void DisablePlayer()
    {
        //Disable movement to ensure that the player can't move while they're dead
        PlayerController playerMovement = GetComponent <PlayerController>();
        //Also disable the attack script
        PlayerAttack playerAttack = GetComponent <PlayerAttack>();
        //And the interact script
        PlayerInteractor playerInteractor = GetComponent <PlayerInteractor>();

        playerAttack.enabled     = false;
        playerMovement.enabled   = false;
        playerInteractor.enabled = false;
    }
コード例 #19
0
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     base.Interact(heldObject, player);
     if (lampLight.enabled)
     {
         lampLight.enabled = false;
         gameDataScriptable.turnedOnLight = false;
     }
     else
     {
         lampLight.enabled = true;
         gameDataScriptable.turnedOnLight = true;
     }
 }
コード例 #20
0
ファイル: Interactable.cs プロジェクト: marquesbelem/wgj-2020
    public bool CanInteractWith(PlayerInteractor interactor)
    {
        bool result = dayTime == interactor.playerType;

        if (collectableRef != null)
        {
            result = result && collectableRef.CanInteractWith(interactor);
        }
        if (deliverSlotRef != null)
        {
            result = result && deliverSlotRef.CanInteractWith(interactor);
        }
        return(result);
    }
コード例 #21
0
ファイル: Collectable.cs プロジェクト: marquesbelem/wgj-2020
    public bool CanInteractWith(PlayerInteractor interactor)
    {
        DeliverSpot deliverSpot = DeliverSpot.FirstEnabled;

        if (deliverSpot != null)
        {
            DeliverSpot.WishedResource wishedResource = deliverSpot.wishedResources.Find(w => w.type == type);
            if (wishedResource != null)
            {
                return(wishedResource.quantity > interactor.CountResourcesOfType(type));
            }
        }
        return(false);
    }
コード例 #22
0
ファイル: Interactable.cs プロジェクト: marquesbelem/wgj-2020
 public static void TryInteractAimedWith(PlayerInteractor interactor)
 {
     if (aimed != null)
     {
         if (aimed.CanInteractWith(interactor))
         {
             aimed.InteractWith(interactor);
         }
         else
         {
             aimed.BlockedInteractWith(interactor);
         }
     }
 }
コード例 #23
0
ファイル: Oven.cs プロジェクト: Ittaimann/GGJ2019
    public override void Interact(Pickup heldObject, PlayerInteractor player)
    {
        if (heldObject is RawFood)
        {
            GameObject food = heldObject.gameObject;
            player.Drop();
            Destroy(food);
            StartCoroutine(Cook(heldObject.gameObject));
        }

        if (heldObject is Dish && isCooked)
        {
            heldObject.GetComponent <Dish>().AddFood();
            isCooked = false;
        }
    }
コード例 #24
0
ファイル: Alarm.cs プロジェクト: Ittaimann/GGJ2019
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     base.Interact(heldObject, player);
     if (sfx.isPlaying)
     {
         sfx.Stop();
         gameDataScriptable.turnedOffAlarm = true;
     }
     else
     {
         float alarmVolume = sfx.volume;
         Callback.DoLerp((l) => sfx.volume = alarmVolume * l, 5f, this);
         sfx.Play();
         gameDataScriptable.turnedOffAlarm = false;
     }
 }
コード例 #25
0
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     base.Interact(heldObject, player);
     if (heldObject is Dish)
     {
         player.Drop();
         heldObject.transform.position = this.transform.position;
         dish = heldObject as Dish;
     }
     else if (dish != null && (dish.transform.position - this.transform.position).magnitude < 1)
     {
         dish.clean = true;
         sfx.Play();
         vfx.Play();
         gameDataScriptable.washedDishes = true;
     }
 }
コード例 #26
0
    private void OnTriggerStay(Collider other)
    {
        if (Input.GetButtonUp("Interact") && other.CompareTag(Tags.Player) && isUsable)
        {
            //  Ensure player is in a none state before allowing to use lever
            PlayerController playerController = other.GetComponent <PlayerController>();
            if (playerController.currentState != PlayerController.PlayerState.None)
            {
                return;
            }

            //  Send message to player
            PlayerInteractor playerInteractor = other.GetComponent <PlayerInteractor>();

            playerInteractor.OnTurnLeverStart(this);
        }
    }
コード例 #27
0
    public void Interact()
    {
        if (PlayerInventory.AddItem(ItemData))
        {
            if (_persistAfterPickup)
            {
                return;
            }

            SetWorldState(EWorldState.Disabled);
            PlayerInteractor.OnInteractableOverlap(this, true);
            if (RespawnTime > 0)
            {
                StartCoroutine(Respawn());
            }
        }
    }
コード例 #28
0
ファイル: DoorOpen.cs プロジェクト: Ittaimann/GGJ2019
 public override void Interact(Pickup heldObject, PlayerInteractor player)
 {
     if (heldObject is Keys)
     {
         base.Interact(heldObject, player);
         if (gameDataScriptable.fedCat &&
             gameDataScriptable.gotDressed &&
             gameDataScriptable.hasEaten &&
             gameDataScriptable.tookShower &&
             gameDataScriptable.turnedOffAlarm &&
             gameDataScriptable.turnedOnLight &&
             gameDataScriptable.usedToilet &&
             gameDataScriptable.washedDishes)
         {
             doorOpen();
         }
     }
 }
コード例 #29
0
    private void Update()
    {
        PlayerInteractor collector   = PlayerInteractor.FirstEnabled;
        DeliverSpot      deliverSpot = DeliverSpot.FirstEnabled;

        if (collector != null && deliverSpot != null)
        {
            for (int i = 0; i < resourceCount; i++)
            {
                textRenderers[i].text = collector.CountResourcesOfType(i) + deliverSpot.CollectedQuantityOfType(i) + "/" + deliverSpot.WishedQuantityOfType(i);
            }
            panelRoot.SetActive(true);
        }
        else
        {
            panelRoot.SetActive(false);
        }
    }
コード例 #30
0
ファイル: Collectable.cs プロジェクト: marquesbelem/wgj-2020
 public void InteractWith(PlayerInteractor interactor)
 {
     InteractableRef.enabled = false;
     interactor.BeginCollectResource(this);
     onCollected.Invoke();
 }
コード例 #31
0
 // Use this for initialization
 void Awake()
 {
     if (!Instance)
     {
         Instance = this;
         PlayerManager.init();
         currentPlayerInfo = PlayerManager.getCurrentPlayerInfo();
         ClickObject += currentPlayerInfo.selectUnit.onclickGround;
         //PlayerInteractor.Instance.ClickUnit += currentPlayerInfo.selectUnit.onclickGround;
     }
     else
     {
         Debug.LogError("ActionManager must be added to just only one gameobject");
     }
 }