コード例 #1
0
    // Called when the object is initialized
    void Awake()
    {
        // if it doesn't exist
        if (instance == null)
        {
            // Set the instance to the current object (this)
            instance                 = this;
            this.weightPerOx         = 20;
            this.weightPerPerson     = 2;
            this.foodWeight          = 0.6;
            this.foodPerPerson       = 2;
            this.gameSpeed           = 2;
            this.dayPerSecond        = 0.016;
            this.distanceToGoal      = 1000;
            this.incidentProbability = 0.15;
            this.nextIncidentCheck   = 0;
            IncidentManager.setNextIncidentCheck();
        }

        // There can only be a single instance of the game manager
        else if (instance != this)
        {
            // Destroy the current object, so there is just one manager
            Destroy(gameObject);
        }

        // Don't destroy this object when loading scenes
        DontDestroyOnLoad(gameObject);
    }
コード例 #2
0
    public void NextTurn()
    {
        //PlayerPrefs.DeleteAll();
        AudioManager.Instance.PlayNextTurn();

        Turn++;
        _incidentManager.NextTurnButton.SetActive(false);
        _incidentManager.EndTurnSatisfactionObject.SetActive(false);
        GameObject.Find("OfficerManager").GetComponent <OfficerController>().EndTurn();
        TurnsText.text = Turn.ToString();
        if (_incidentManager == null)
        {
            _incidentManager = this.GetComponent <IncidentManager>();
        }

        _incidentManager.UpdateIncidents();

        //update at the end to give the player a chance to get citizen happiness over 20%
        _incidentManager.EndTurn();
        //decide which incident to show this turn
        _incidentManager.IsIncidentWaitingToShow(Turn);    //not using the bool callback to populate the next incident list
        //_incidentManager.CreateNewIncident(turn);

        _incidentManager.ShowIncident(Turn);
        NextState();
    }
コード例 #3
0
 void Update()
 {
     // Try to generate an incident
     if (Time.time >= this.nextIncidentCheck)
     {
         Debug.Log("Checking incident...");
         IncidentManager.incidentCheck();
     }
 }
コード例 #4
0
    void Awake()
    {
        SetLocalizedText();

        _incidentManager = GetComponent <IncidentManager>();

        _tutorialState = TutorialStates.Start;
        NextState();
    }
コード例 #5
0
 void Start()
 {
     NextTurnButton.SetActive(false);
     EndTurnSatisfaction.SetActive(false);
     GameOver.gameObject.SetActive(false);
     settingsScreen.SetActive(false);
     FeedbackObject.gameObject.SetActive(false);
     startScreen.SetActive(true);
     _incidentManager = this.GetComponent <IncidentManager>();
 }
コード例 #6
0
        public override int Delete(CMUser obj)
        {
            IncidentManager incidentManager = new IncidentManager();
            var             incidentList    = incidentManager.ListQueryable().Where(x => x.OwnerId == obj.Id);

            foreach (var item in incidentList)
            {
                incidentManager.Delete(item);
            }
            return(base.Delete(obj));
        }
コード例 #7
0
    private void CreateElement(IncidentHistoryElement element, float offset, bool isCurrent = true)
    {
        var go = Instantiate(IncidentHistoryElement);

        var setup         = go.GetComponent <IncidentHistoryUISetup>();
        var rectTransform = go.GetComponent <RectTransform>();

        go.transform.SetParent(this.transform);

        rectTransform.anchorMin = Vector2.zero;
        rectTransform.anchorMax = Vector2.one;

        rectTransform.offsetMin = Vector2.zero;
        rectTransform.offsetMax = Vector2.zero;

        rectTransform.localScale = Vector3.one;

        var sprite = setup.Icon.sprite;

        if (!isCurrent)
        {
            setup.Icon.gameObject.SetActive(true);
            switch (element.PlayerDecision)
            {
            case global::IncidentHistoryElement.Decision.Ignore:
                sprite = WaitSprite;
                break;

            case global::IncidentHistoryElement.Decision.Citizen:
                sprite = CitizenSprite;
                break;

            case global::IncidentHistoryElement.Decision.Officer:
                sprite = OfficerSprite;
                break;
            }
        }
        else
        {
            setup.Icon.gameObject.SetActive(false);
            setup.DropDownImage.localRotation = Quaternion.Euler(0f, 0f, 270f);
        }
        if (_incidentManager == null)
        {
            _incidentManager = GameObject.Find("TurnManager").GetComponent <IncidentManager>();
        }

        setup.Setup(element.Type, element.Description, sprite, _totalElements, _incidentManager.GetSeverityColor(element.Severity));
        setup.Header.anchoredPosition3D = new Vector3(0f, offset, 0f);

        _setupObjects.Add(setup);
        _offset -= setup.Header.rect.height;
    }
コード例 #8
0
    public IEnumerator ShowFeedback(int rating, int severity, Transform buttonPressed)
    {
        if (rating != -1)
        {
            // if rating == -1 then either the rating has not been set or this button should not have been possible to press

            var activeObject = Instantiate(GetActiveObject(rating));

            activeObject.transform.SetParent(this.transform);
            var rect = activeObject.GetComponent <RectTransform>();
            rect.offsetMin  = Vector2.zero;
            rect.offsetMax  = Vector2.zero;
            rect.localScale = Vector3.one;

            activeObject.SetActive(true);

            // Set position to the top of the button pressed
            transform.position = buttonPressed.position;

            // Animate the object
            _animation.Play();
            yield return(new WaitForSeconds(_animation.clip.length));

            // Fade out the feedback objects
            var ratingObjects = activeObject.GetComponentsInChildren <Transform>();

            if (!_satisfactionDisplays)
            {
                _satisfactionDisplays = GameObject.Find("SatisfactionBar").GetComponent <SatisfactionDisplays>();
            }
            if (!_incidentManager)
            {
                _incidentManager = GameObject.Find("TurnManager").GetComponent <IncidentManager>();
            }

            float ratingImpact = (rating - 3) * severity;

            ratingImpact = ratingImpact > 0 ? ratingImpact * 0.2f : ratingImpact;
            _incidentManager.AddHappiness(ratingImpact);
            foreach (var feedbackTransform in ratingObjects)
            {
                feedbackTransform.SetParent(GameObject.Find("GameCanvas").transform);
                StartCoroutine(_satisfactionDisplays.TransitionTo(feedbackTransform, 0.5f, _incidentManager.GetActualHappiness())); // -3 as 3 indicates a neutral choice, so no change
            }
        }
        else
        {
            // This object would normally be set active before it is used, so lets force it to be inactive
            this.gameObject.SetActive(false);
        }
    }
コード例 #9
0
    void Start()
    {
        _citizenHelpButton = ButtonPanel.Find("CitizenHelpButton").gameObject;
        _sendOfficerButton = ButtonPanel.Find("SendOfficersButton").gameObject;
        _waitButton        = ButtonPanel.Find("WaitButton").gameObject;
        _caseClosedButton  = ButtonPanel.Find("CaseClosedButton").gameObject;
        _buttonFeedback    = ButtonPanel.Find("FeedbackPanel").GetComponent <ButtonFeedback>();
        _buttonFeedback.gameObject.SetActive(false);
        _buttonFade = ButtonPanel.Find("ButtonFade").gameObject;
        _buttonFade.SetActive(false);

        DisableButtons();

        _incidentManager = GameObject.Find("TurnManager").GetComponent <IncidentManager>();
    }
コード例 #10
0
    public void Setup(string id, State zState = State.New, int zSeverity = 1)
    {
        if (_incidentManager == null)
        {
            _incidentManager = GameObject.Find("TurnManager").GetComponent <IncidentManager>();
        }
        //set up the case to show the relevant info
        caseNumber     = id;
        m_state        = zState;
        severityNumber = zSeverity;

        CaseImage.color = m_state == State.New
            ? _incidentManager.GetSeverityColor(0)
            : _incidentManager.GetSeverityColor(severityNumber);

        highlightObject.SetActive(false);
    }
コード例 #11
0
    public void NextTurn()
    {
        //PlayerPrefs.DeleteAll();
        AudioManager.Instance.PlayNextTurn();

        turn++;
        NextTurnButton.SetActive(false);
        EndTurnSatisfaction.SetActive(false);
        GameObject.Find("OfficerManager").GetComponent <OfficerController>().EndTurn();
        turnsText.text = turn.ToString();
        if (_incidentManager == null)
        {
            _incidentManager = this.GetComponent <IncidentManager>();
        }

        _incidentManager.UpdateIncidents();
        //m_IncidentManager.CheckExpiredIncidents(turn);

        if (_incidentManager.IsGameOver())
        {
            //GAME OVER
            GameOver.gameObject.SetActive(true);
            GameOver.ShowGameOver(turn - 1, _incidentManager.GetTotalCasesClosed(), _incidentManager.GetTotalCasesClosedWell());
        }
        else
        {
            //update at the end to give the player a chance to get citizen happiness over 20%
            _incidentManager.EndTurn();
            //decide which incident to show this turn
            _incidentManager.IsIncidentWaitingToShow(turn);    //not using the bool callback to populate the next incident list
                                                               //_incidentManager.CreateNewIncident(turn);

            _incidentManager.AddNewIncidents(turn);


#if SELECT_INCIDENTS
            GameObject.Find("IncidentDialog").GetComponent <DialogBox>().DeactivateAll();
#else
            _incidentManager.ShowIncident(turn);
#endif
        }
    }
コード例 #12
0
 public IncidentController(ILogger <IncidentController> logger, IncidentManager incidentManager, DogManager dogManager)
 {
     _logger          = logger;
     _incidentManager = incidentManager;
     _dogManager      = dogManager;
 }
コード例 #13
0
 public IncidentController() : base()
 {
     IncidentManager = new IncidentManager();
 }
コード例 #14
0
 public WeightApiController()
 {
     IncidentManager = new IncidentManager();
     SensorManager   = new SensorManager();
     ShiftManager    = new ShiftManager();
 }
コード例 #15
0
 void Start()
 {
     _incidentManager   = GameObject.Find("TurnManager").GetComponent <IncidentManager>();
     _turnManager       = _incidentManager.gameObject.GetComponent <TurnManager>();
     _officerController = GameObject.Find("OfficerManager").GetComponent <OfficerController>();
 }