Пример #1
0
    public void SpawnCreditsPaperwork()
    {
        if (DeveloperProfileIndex >= DeveloperProfileCount)
        {
            bCreditsDone = true;
            MarkerOfDeath.instance.MarkerDisappear();
            StartCoroutine(ThankRoutine());
        }
        else
        {
            Paperwork newPaperwork = Instantiate(PaperworkManager.instance.PaperworkTemplate);
            newPaperwork.bIsCreditsProfile = true;
            newPaperwork.InitFromProfile(ProfileManager.instance.DeveloperProfileList[DeveloperProfileIndex], GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.position, GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.rotation, false, 0, false);
            newPaperwork.gameObject.transform.SetParent(gameObject.transform);
            int     spawnMarkerIndex = DeveloperProfileIndex % PaperworkMarkers.Count;
            Vector3 spawnPos         = newPaperwork.gameObject.transform.position;

            spawnPos.x = PaperworkMarkers[spawnMarkerIndex].transform.position.x;
            spawnPos.y = PaperworkMarkers[spawnMarkerIndex].transform.position.y;

            newPaperwork.gameObject.transform.position = spawnPos;

            newPaperwork.FocusPaperwork();

            CurrentPaperwork = newPaperwork;
            DeveloperProfileIndex++;
        }
    }
        public async Task <ActionResult <Paperwork> > CreatePaperwork(PaperworkCriteria item)
        {
            Paperwork result = new Paperwork();

            using (dbtramiteContext db = new dbtramiteContext())
            {
                result.Name      = item.Name;
                result.FacultyId = item.FacultyId;
                result.CreatedBy = "1";
                result.IsActive  = 1;
                result.CreatedAt = DateTime.Now;
                db.Add(result);
                db.SaveChanges();
            }
            return(result);
        }
Пример #3
0
    public void Show(Paperwork pendingPaperwork, EPaperworkMarkType pendingMarkType, PaperworkMark pendingMark)
    {
        PendingPaperwork = pendingPaperwork;
        if (PendingPaperwork.GetProfile() == GameManager.instance.GrimReaperPaperworkProfile)
        {
            if (pendingMarkType == EPaperworkMarkType.Die)
            {
                TextPrompt.text = TextSelfie;
            }
            else
            {
                TextPrompt.text = TextSelfieLive;
            }
        }
        else if (PendingPaperwork.GetProfile() == GameManager.instance.FatePaperworkProfile)
        {
            if (pendingMarkType == EPaperworkMarkType.Die)
            {
                TextPrompt.text = TextUsurpator;
            }
            else
            {
                TextPrompt.text = TextUsurpatorLive;
            }
        }
        else
        {
            TextPrompt.text = TextDefault;
        }
        PendingMarkType = pendingMarkType;
        PendingMark     = pendingMark;

        if (SaveManager.instance.CurrentOptions.SkipMarkPopUp)
        {
            ToggleOptOut.gameObject.SetActive(false);
        }
        else
        {
            ToggleOptOut.isOn = false;
            ToggleOptOut.gameObject.SetActive(true);
        }

        gameObject.SetActive(true);
        Cursor.visible = true;
    }
Пример #4
0
    public void NotifyStartDay(bool restoreFromSave)
    {
        List <template_profile> profiles = new List <template_profile>(DesktopManager.instance.GetProfiles());
        int profileCount = profiles.Count;

        if (!restoreFromSave)
        {
            if (SaveManager.instance.GetCurrentPlayerState().GetCurrentDayNumberNotIndexThisHasOneAddedToIt() == 4)
            {
                SaveManager.instance.GetCurrentCarryoverPlayerState().FateAttentionProfileIndex = Random.Range(0, profileCount);
            }
            else
            {
                SaveManager.instance.GetCurrentCarryoverPlayerState().FateAttentionProfileIndex = -1;
            }
            SaveManager.instance.MarkSavegameDirty();
        }

        //TODO: ARTICY VAR TO CHECK IF IT HAS BEEN DEADED OR LIVE
        int fateAttentionProfileIndex = SaveManager.instance.GetCurrentCarryoverPlayerState().FateAttentionProfileIndex;


        for (int i = 0; i < profileCount; ++i)
        {
            Paperwork newPaperwork = Instantiate(PaperworkTemplate);
            if (restoreFromSave)
            {
                newPaperwork.InitFromProfile(profiles[i], GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.position + new Vector3(1.0f * (i % 4), 0.3f * (i % 4) - 0.6f * Mathf.FloorToInt(i / 4), -i * 2 - 3), GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.rotation, restoreFromSave, i, i == fateAttentionProfileIndex);
            }
            else
            {
                int profileIndex = Random.Range(0, profiles.Count);
                newPaperwork.InitFromProfile(profiles[profileIndex], GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.position + new Vector3(1.0f * (i % 4), 0.3f * (i % 4) - 0.6f * Mathf.FloorToInt(i / 4), -i * 2 - 3), GrimDesk.instance.PaperWorkSpawnMarker.gameObject.transform.rotation, restoreFromSave, i, i == fateAttentionProfileIndex);
                profiles.RemoveAt(profileIndex);
            }
            newPaperwork.name += i;
            //newPaperwork.StartFadeInParticle();
            PaperworkList.Add(newPaperwork);
        }
    }
Пример #5
0
 public void Hide()
 {
     Cursor.visible   = false;
     PendingPaperwork = null;
     gameObject.SetActive(false);
 }
Пример #6
0
    public void FinishDay()
    {
        Phone.instance.ClearNews();

        int deathOccupationMarks = 0;
        int spareOccupationMarks = 0;
        int deathOlderMarks      = 0;
        int spareOlderMarks      = 0;
        int deathYoungerMarks    = 0;
        int spareYoungerMarks    = 0;

        foreach (template_profile profile in Profiles)
        {
            Paperwork paperwork = PaperworkManager.instance.GetPreviousPaperworkByProfile(profile);

            if (profile.Template.profile_basic_data.profile_marked_for_death)
            {
                if (paperwork != null && paperwork.bFateAttentionSpare)
                {
                    ArticyGlobalVariables.Default.day.four_spared_fates_extra_profile = false;
                }

                if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_selector == (int)profile.Template.profile_basic_data.profile_occupation_selector)
                {
                    deathOccupationMarks++;
                }

                int ageOlder = 0;
                int.TryParse(profile.Template.profile_basic_data.profile_age_value, out ageOlder);
                if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older >= ageOlder)
                {
                    deathOlderMarks++;
                }

                int ageYounger = 0;
                int.TryParse(profile.Template.profile_basic_data.profile_age_value, out ageYounger);
                if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger <= ageYounger)
                {
                    deathYoungerMarks++;
                }

                ApplyConsequence(profile.Template.profile_death_data);
                SaveManager.instance.GetCurrentPlayerState().ModifyStat(EStat.DEATH_TOTAL, 1);
            }
            else
            {
                if (paperwork != null && paperwork.bFateAttentionSpare)
                {
                    ArticyGlobalVariables.Default.day.four_spared_fates_extra_profile = true;
                }

                if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_selector == (int)profile.Template.profile_basic_data.profile_occupation_selector)
                {
                    spareOccupationMarks++;
                }

                int ageOlder = 0;
                int.TryParse(profile.Template.profile_basic_data.profile_age_value, out ageOlder);
                if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older >= ageOlder)
                {
                    spareOlderMarks++;
                }

                int ageYounger = 0;
                int.TryParse(profile.Template.profile_basic_data.profile_age_value, out ageYounger);
                if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger_amount > 0 &&
                    (int)GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger <= ageYounger)
                {
                    spareYoungerMarks++;
                }

                ApplyConsequence(profile.Template.profile_spare_data);
                SaveManager.instance.GetCurrentPlayerState().ModifyStat(EStat.SPARE_TOTAL, 1);
            }
        }
        SaveManager.instance.GetCurrentPlayerState().SetFaxSent(true);

        SaveManager.instance.GetCurrentCarryoverPlayerState().ResetTaskDeviationCounter();

        if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_amount > 0 &&
            spareOccupationMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }
        if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_amount > 0 &&
            deathOccupationMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }
        if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older_amount > 0 &&
            spareOlderMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }
        if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older_amount > 0 &&
            deathOlderMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }
        if (GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger_amount > 0 &&
            spareYoungerMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }
        if (GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger_amount > 0 &&
            deathYoungerMarks < GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger_amount)
        {
            SaveManager.instance.GetCurrentCarryoverPlayerState().IncrementTaskDeviationCounter();
        }

        Debug.Log("Day " + (SaveManager.instance.GetCurrentPlayerState().GetCurrentDayNumberNotIndexThisHasOneAddedToIt()) +
                  " task overview:" +
                  "\nSpare Occupation requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_selector + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_occupation_amount + " current: " + spareOccupationMarks +
                  "\nSpare Older requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_older_amount + " current: " + spareOlderMarks +
                  "\nSpare Younger requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_spare_threshold_younger_amount + " current: " + spareYoungerMarks +
                  "\nDeath Occupation requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_selector + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_occupation_amount + " current: " + deathOccupationMarks +
                  "\nDeath Older requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_older_amount + " current: " + deathOlderMarks +
                  "\nDeath Younger requirement: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger + " value: " + GameManager.instance.GetCurrentDayTask().Template.task.task_death_threshold_younger_amount + " current: " + deathYoungerMarks +
                  "\nDeviation Counter: " + SaveManager.instance.GetCurrentCarryoverPlayerState().GetTaskDeviationCounter());

        if (SaveManager.instance.GetCurrentPlayerState().GetCurrentDayIndex() == 19)
        {
            ArticyGlobalVariables.Default.day.twenty_done_cons_trigger = true;
        }

        if (GameManager.instance.GetLoyaltyFactor() >= 1.0f)
        {
            SaveManager.instance.GetCurrentPlayerState().bRuleBender = false;
        }

        SaveManager.instance.GetCurrentPlayerState().ModifyStat(EStat.LOYALTY, Mathf.CeilToInt(100 * GameManager.instance.GetLoyaltyFactor()));


        Profiles.Clear();

        KeyValuePair <string, int> bestParameter  = SaveManager.instance.GetCurrentPlayerState().GetBestParameter();
        KeyValuePair <string, int> worstParameter = SaveManager.instance.GetCurrentPlayerState().GetWorstParameter();

        ArticyGlobalVariables.Default.rep.best_parameter_name  = bestParameter.Key;
        ArticyGlobalVariables.Default.rep.best_parameter_value = bestParameter.Value;

        ArticyGlobalVariables.Default.rep.worst_parameter_name  = worstParameter.Key;
        ArticyGlobalVariables.Default.rep.worst_parameter_value = worstParameter.Value;

        float averageRep = (ArticyGlobalVariables.Default.rep.ecology + ArticyGlobalVariables.Default.rep.prosperity + ArticyGlobalVariables.Default.rep.peace + ArticyGlobalVariables.Default.rep.health) / 4;

        if (ArticyGlobalVariables.Default.profile.evil_ecology_trigger)
        {
            if (ArticyGlobalVariables.Default.rep.ecology > GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire])
            {
                ArticyGlobalVariables.Default.profile.evil_ecology_trigger = false;
            }
        }
        else
        {
            if (ArticyGlobalVariables.Default.rep.ecology <= -500)
            {
                ArticyGlobalVariables.Default.profile.evil_ecology_trigger = true;
            }
        }
        if (ArticyGlobalVariables.Default.profile.evil_health_trigger)
        {
            if (ArticyGlobalVariables.Default.rep.health > GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire])
            {
                ArticyGlobalVariables.Default.profile.evil_health_trigger = false;
            }
        }
        else
        {
            if (ArticyGlobalVariables.Default.rep.health <= -500)
            {
                ArticyGlobalVariables.Default.profile.evil_health_trigger = true;
            }
        }
        if (ArticyGlobalVariables.Default.profile.evil_peace_trigger)
        {
            if (ArticyGlobalVariables.Default.rep.peace > GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire])
            {
                ArticyGlobalVariables.Default.profile.evil_peace_trigger = false;
            }
        }
        else
        {
            if (ArticyGlobalVariables.Default.rep.peace <= -500)
            {
                ArticyGlobalVariables.Default.profile.evil_peace_trigger = true;
            }
        }
        if (ArticyGlobalVariables.Default.profile.evil_prosperity_trigger)
        {
            if (ArticyGlobalVariables.Default.rep.prosperity > GameManager.instance.ChaosThresholds[(int)EChaosThreshold.Dire])
            {
                ArticyGlobalVariables.Default.profile.evil_prosperity_trigger = false;
            }
        }
        else
        {
            if (ArticyGlobalVariables.Default.rep.prosperity <= -500)
            {
                ArticyGlobalVariables.Default.profile.evil_prosperity_trigger = true;
            }
        }

        Debug.Log("Day " + (SaveManager.instance.GetCurrentPlayerState().GetCurrentDayNumberNotIndexThisHasOneAddedToIt()) +
                  " over\nWorst parameter: " + ArticyGlobalVariables.Default.rep.worst_parameter_name + " value: " + ArticyGlobalVariables.Default.rep.worst_parameter_value +
                  "\nBest parameter: " + ArticyGlobalVariables.Default.rep.best_parameter_name + " value: " + ArticyGlobalVariables.Default.rep.best_parameter_value +
                  "\nAverageRep: " + averageRep);

        ExitDesktop();
    }
Пример #7
0
    private void HandleInteractableInput(bool bLeftMouseDown, bool bLeftMouseUp)
    {
        //int layerMask = 1 << LayerMask.NameToLayer("Container");
        Ray          ray             = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit2D hit             = Physics2D.GetRayIntersection(ray, Mathf.Infinity);
        Interactable hitInteractable = null;

        if (hit.collider != null)
        {
            //hitInteractable = (Interactable)hit.collider.gameObject.GetComponent(typeof(Interactable));
            //if(hitInteractable == null)
            //{
            //}
            hitInteractable = (Interactable)hit.collider.gameObject.GetComponentInParent(typeof(Interactable));
            //TODO: remove
            //Draggable newDraggable = hit.collider.gameObject.GetComponentInParent<Draggable>();
            //if (CurrentDraggable != null && CurrentDraggable != newDraggable)
            //{
            //    CurrentDraggable.ToggleDragging(false);
            //}

            if (hitInteractable != null && LastHitInteractable != hitInteractable)
            {
                if (LastHitInteractable != null)
                {
                    LastHitInteractable.Unhover();
                }
                LastHitInteractable = hitInteractable;
                if (LastHitInteractable != null)
                {
                    LastHitInteractable.Hover();
                }
                HUDManager.instance.SetHoverText(hitInteractable.GetHoverText());
            }
            else
            {
            }
        }
        else
        {
            //TODO: remove
            //if (CurrentDraggable != null)
            //{
            //    CurrentDraggable.ToggleDragging(false);
            //}

            if (LastHitInteractable != null)
            {
                LastHitInteractable.Unhover();
            }

            HUDManager.instance.SetHoverText("");
            LastHitInteractable = null;
        }

        // once
        if (bLeftMouseDown && !IsPointerOverUIObject() && hit.collider != null)
        {
            DragStart        = Input.mousePosition;
            CurrentDraggable = hit.collider.gameObject.GetComponentInParent <Draggable>();
            if (CurrentDraggable != null && CurrentDraggable.CanDrag())
            {
                CurrentDraggable.UpdateDragGrabPosition(hit.point);
            }

            MouseDownInteractable = hit.collider.gameObject.GetComponentInParent <Interactable>();
        }


        // continous
        if (Input.GetMouseButton(0))
        {
            if (Vector3.Distance(DragStart, Input.mousePosition) >= 15.0f)
            {
                if (CurrentDraggable != null && CurrentDraggable.CanDrag())
                {
                    if (!CurrentDraggable.IsDragging())
                    {
                        //CurrentDraggable.UpdateDragGrabPosition(hit.point);
                        CurrentDraggable.ToggleDragging(true);
                    }

                    int            layerMaskDrag = 1 << LayerMask.NameToLayer("Drawer");
                    Ray            rayDrag       = Camera.main.ScreenPointToRay(Input.mousePosition);
                    RaycastHit2D   hitDrag       = Physics2D.GetRayIntersection(rayDrag, Mathf.Infinity, layerMaskDrag);
                    GrimDeskDrawer hitDrawer     = null;

                    if (hitDrag.collider != null)
                    {
                        //Debug.Log("drag hit: " + hitDrag.collider.gameObject);

                        //hitInteractable = (Interactable)hit.collider.gameObject.GetComponent(typeof(Interactable));
                        //if(hitInteractable == null)
                        //{
                        //}
                        hitDrawer = hitDrag.collider.gameObject.GetComponentInParent <GrimDeskDrawer>();
                        if (hitDrawer != null)
                        {
                            if (hitDrawer.IsOpen())
                            {
                                CurrentDraggable.HandleDropIntoDrawer(hitDrawer);
                            }
                        }
                        else
                        {
                            CurrentDraggable.HandleDragOutOfDrawer();
                        }
                    }
                    else
                    {
                        CurrentDraggable.HandleDragOutOfDrawer();
                    }
                }
            }
        }

        // once
        if (bLeftMouseUp && !IsPointerOverUIObject())
        {
            DragEnd = Input.mousePosition;

            if (hitInteractable != null)
            {
                if (MouseDownInteractable == hitInteractable)
                {
                    if (CurrentDraggable != null)
                    {
                        if (Vector3.Distance(DragStart, DragEnd) < 15.0f)
                        {
                            hitInteractable.Interact();
                        }
                    }
                    else
                    {
                        if (hit.collider.gameObject.GetComponentInParent <Phone>())
                        {
                            if (Vector3.Distance(DragStart, DragEnd) < 15.0f)
                            {
                                hitInteractable.Interact();
                            }
                        }
                        else
                        {
                            hitInteractable.Interact();
                        }
                    }
                }
                MouseDownInteractable = null;
            }
            else
            {
                if (MarkerOfDeath.instance.IsPickedUp())
                {
                    MarkerOfDeath.instance.Interact();
                }
                else if (Eraser.instance.IsPickedUp())
                {
                    Eraser.instance.Interact();
                }
                else
                {
                }
            }
            if (CurrentDraggable != null)
            {
                if (CurrentDraggable.IsDragging())
                {
                    CurrentDraggable.ToggleDragging(false);
                    Paperwork draggedPaperwork = CurrentDraggable as Paperwork;
                    if (draggedPaperwork != null && draggedPaperwork.Status == EPaperworkStatus.DESK)
                    {
                        int          layerMaskDrag = 1 << LayerMask.NameToLayer("Fax");
                        RaycastHit2D hitFax        = Physics2D.Raycast(draggedPaperwork.gameObject.transform.position, Vector2.down, Mathf.Infinity, layerMaskDrag);
                        if (hitFax.collider != null)
                        {
                            FaxMachine misterfaxobeat = hitFax.collider.gameObject.GetComponent <FaxMachine>();
                            if (misterfaxobeat != null && !misterfaxobeat.IsInDrawer())
                            {
                                misterfaxobeat.Interact();
                            }
                        }
                        else
                        {
                            hitFax = Physics2D.Raycast(draggedPaperwork.FaxTraceMarker.gameObject.transform.position, Vector2.down, Mathf.Infinity, layerMaskDrag);
                            if (hitFax.collider != null)
                            {
                                FaxMachine misterfaxobeat = hitFax.collider.gameObject.GetComponent <FaxMachine>();
                                if (misterfaxobeat != null)
                                {
                                    misterfaxobeat.Interact();
                                }
                            }
                        }
                    }
                    SaveManager.instance.MarkSavegameDirty();
                }
                CurrentDraggable = null;
            }
        }
    }