示例#1
0
    private IEnumerator ShowerAsAnObjectiveCo(ControllableEntity player)
    {
        yield return(player.LoadForDuration(_showerDuration));

        _usedShower = true;
        _showerCo   = null;
    }
示例#2
0
        public void ControllableEntityMoved(ControllableEntity e)
        {
            /*
             * //Log.Trace("Controllable Entity Moved", "ControllableEntityAdded");
             * var notice = new SEGarden.Notifications.AlertNotification() {
             *  Text = "Controllable Entity " + e.EntityId + " Moved",
             *  DisplaySeconds = 5
             * };
             * notice.Raise();
             */

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                UpdateObservingGridPosition(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                UpdateRememberedGridPosition(grid);
            }
        }
    private IEnumerator DrinkCo(ControllableEntity player)
    {
        yield return(player.LoadForDuration(4));

        _drankCoffee = true;
        _drinkCo     = null;
    }
示例#4
0
    private void Possess(ControllableEntity c)
    {
        meshTransform.renderer.material.color = Color.Lerp(currentColor, Color.blue, Mathf.PingPong(Time.time, Constants.POSSESSION_TIME) / Constants.POSSESSION_TIME);
        if (c != null && c != transform.root.GetComponent <ControllableEntity>())
        {
            c.gameObject.GetComponentInChildren <MobController>().ChangeColor();
        }
        if (possessionTime < POSSESSION_TIME)
        {
            possessionTime += Time.deltaTime;
        }
        else
        {
            // Change to Proper Controller
            if (c != null && c != transform.root.GetComponent <ControllableEntity>())
            {
                SetControllingObject(c.gameObject);
            }

            // Reset Color
//			meshTransform.renderer.material.color = currentColor;

            // Posession Variables
            possessionTime = 0;
            isPossessing   = false;
            c = null;
        }
    }
    private IEnumerator DoTheThingAndTriggerObjectiveCo(ControllableEntity player)
    {
        yield return(player.LoadForDuration(_duration));

        _usedOnce   = true;
        _doTheThing = null;
    }
示例#6
0
    private IEnumerator TalkCo(ControllableEntity player)
    {
        yield return(player.LoadForDuration(4));

        _talked = true;
        _talkCo = null;
    }
示例#7
0
    public override void Interact(ControllableEntity player)
    {
        _sleeping = true;
        player.transform.position    = transform.position;
        player.transform.eulerAngles = new Vector3(0, 0, 90);

        Transition();
    }
示例#8
0
        public void ControllableEntityReleased(ControllableEntity e)
        {
            var notice = new SEGarden.Notifications.AlertNotification()
            {
                Text           = "Controllable Entity " + e.EntityId + " Released",
                DisplaySeconds = 5
            };

            notice.Raise();
        }
示例#9
0
    public override void Interact(ControllableEntity player)
    {
        base.Interact(player);

        if (_level5Dog)
        {
            _barks.PlayLevel5Sequence();
        }
        else
        {
            _barks.PlayLevel1Sequence();
        }
    }
示例#10
0
    void Update()
    {
        // Movement
        float xAxis = Input.GetAxis("Horizontal");
        //z-axis is y-axis
        float zAxis = Input.GetAxis("Vertical");

        parentObject.transform.Translate(Vector3.forward * zAxis * moveSpeed * Time.deltaTime, Space.Self);

        // Rotation
        Vector3 rot = parentObject.transform.rotation.eulerAngles;

        rot.y += xAxis * rotationSpeed * Time.deltaTime;
        parentObject.transform.rotation = Quaternion.Euler(rot);


        /*
         * Controls
         */
        // Possession
        if (Input.GetMouseButton(0))
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                ControllableEntity c = hit.transform.root.GetComponentInChildren <ControllableEntity>();
                if (c != null)
                {
                    if (c.GetComponent <MobController>().isAIEnabled)
                    {
                        // Start of Posesssion
                        isPossessing = true;
                        targetEnemy  = c;

                        GameController.GetInstance.timerPaused = true;
                    }
                }
            }
        }

        if (isPossessing)
        {
            Possess(targetEnemy);
        }
    }
示例#11
0
    public GameObject AddNewCharacter()
    {
        m_Count++;

        var characterGo = Instantiate(PrefabCharacter);

        characterGo.SetActive(true);

        var characterEntity           = characterGo.GetComponent <GameObjectEntity>().Entity;
        var entityManager             = World.Active.GetExistingManager <EntityManager>();
        var networkEntityManager      = World.Active.GetExistingManager <CNetworkEntityManager>();
        var controllableEntityManager = World.Active.GetExistingManager <CGameControllableEntityManager>();

        var netData = new NetworkEntity
        {
            IsLocal          = true,
            LocalControlId   = 0,
            NetworkControlId = -1
        };
        var controlData = new ControllableEntity
        {
            ControlType = EEntityControl.Always
        };

        networkEntityManager.AddOrSetComponent(characterEntity, characterGo, netData);
        controllableEntityManager.AddOrSetComponent(characterEntity, characterGo, controlData);

        characterEntity.SetOrCreateComponentData(new ClientEntityAttach
        {
            AttachedTo = ClientId
        });

        characterGo.AddComponentToEntity <P4Default_DFreeMovementWrapper>();
        characterGo.AddComponentToEntity <P4Default_DEntityInputFreeWrapper>();
        characterGo.AddComponentToEntity <P4Default_DEntityInputRythmWrapper>();

        characterEntity = characterGo.GetComponent <GameObjectEntity>().Entity;

        characterEntity.SetComponentData <ClientEntityAttach>(new ClientEntityAttach()
        {
            AttachedTo = ClientId
        });

        return(characterGo);
    }
示例#12
0
    private void Possess(ControllableEntity c)
    {
        meshTransform.renderer.material.color = Color.Lerp(currentColor, Color.blue, Mathf.PingPong(Time.time, Constants.POSSESSION_TIME) / Constants.POSSESSION_TIME);
        if (c != null && c != transform.root.GetComponent<ControllableEntity>()) {
            c.gameObject.GetComponentInChildren<MobController>().ChangeColor();
        }
        if (possessionTime < POSSESSION_TIME) {
            possessionTime += Time.deltaTime;
        } else {
            // Change to Proper Controller
            if (c != null && c != transform.root.GetComponent<ControllableEntity>())
                SetControllingObject(c.gameObject);

            // Reset Color
        //			meshTransform.renderer.material.color = currentColor;

            // Posession Variables
            possessionTime = 0;
            isPossessing = false;
            c = null;
        }
    }
示例#13
0
        public void ControllableEntityRemoved(ControllableEntity e)
        {
            Log.Trace("Controllable Entity Removed", "ControllableEntityRemoved");

            //if (e.IsControlled) ForgetControlledEntity(e);

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                ForgetObservingEntity(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                ForgetGrid(grid);
            }

            //Character character = e as Character;
            //if (character != null) ForgetCharacter(character);
        }
示例#14
0
        public void ControllableEntityAdded(ControllableEntity e)
        {
            Log.Trace("Controllable Entity Added", "ControllableEntityAdded");

            //if (e.IsControlled) RememberControlledEntity(e);

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                RememberObservingEntity(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                RememberGrid(grid);
            }

            //Character character = e as Character;
            //if (character != null) RememberCharacter(character);
        }
 public override void Interact(ControllableEntity player)
 {
     base.Interact(player);
     _triggered = true;
 }
示例#16
0
 public abstract void Interact(ControllableEntity player);
示例#17
0
    void Update()
    {
        // Movement
        float xAxis = Input.GetAxis("Horizontal");
        //z-axis is y-axis
        float zAxis = Input.GetAxis("Vertical");
        parentObject.transform.Translate(Vector3.forward * zAxis * moveSpeed * Time.deltaTime, Space.Self);

        // Rotation
        Vector3 rot = parentObject.transform.rotation.eulerAngles;
        rot.y += xAxis * rotationSpeed * Time.deltaTime;
        parentObject.transform.rotation = Quaternion.Euler(rot);

        /*
         * Controls
         */
        // Possession
        if (Input.GetMouseButton(0)) {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, Mathf.Infinity)) {
                ControllableEntity c = hit.transform.root.GetComponentInChildren<ControllableEntity>();
                if (c != null) {
                    if (c.GetComponent<MobController>().isAIEnabled) {
                        // Start of Posesssion
                        isPossessing = true;
                        targetEnemy = c;

                        GameController.GetInstance.timerPaused = true;
                    }
                }
            }
        }

        if (isPossessing)
            Possess(targetEnemy);
    }
 public override void Interact(ControllableEntity player)
 {
     CommandTyper.Instance.PlayCommandSound(GetSFX());
     _doTheThing = StartCoroutine(DoTheThingAndTriggerObjectiveCo(player));
 }
示例#19
0
    public override void Interact(ControllableEntity player)
    {
        CommandTyper.Instance.PlayCommandSound(GetSFX());

        _showerCo = StartCoroutine(ShowerAsAnObjectiveCo(player));
    }
示例#20
0
 public override void Interact(ControllableEntity player)
 {
     CommandTyper.Instance.PlayCommandSound(GetSFX());
     Transition();
 }
 private EntityController()
 {
     puppet = null;
 }
示例#22
0
    public override void Interact(ControllableEntity player)
    {
        CommandTyper.Instance.PlayCommandSound(GetSFX());

        _talkCo = StartCoroutine(TalkCo(player));
    }
 public void RemovePuppetEntity()
 {
     this.puppet = null;
 }
 public void SetPuppetEntity(ControllableEntity puppet)
 {
     this.puppet = puppet;
 }