Exemple #1
0
    public IEnumerator NewGameRoutine(FadeImageEffect fade)
    {
        IsTransitioning = true;
        TransitionData data = IndexDatabase.Instance().Transitions.GetData("fade_long");

        Global.Instance().Messenger.SetNextScript("y!sms/1_01", true);
        Global.Instance().Messenger.SetNextScript("bell/bell", true);
        Global.Instance().Data.SetSwitch("nighttime", true);
        Global.Instance().Audio.PlayBGM("nighttime");
        yield return(SceneManager.LoadSceneAsync("Map2D"));

        MapOverlayUI.Instance().pcSystem.SetNewsModel(IndexDatabase.Instance().PCNews.GetData("day1"));
        Global.Instance().Maps.RawTeleport("Apartment/Apartment", "start", OrthoDir.East);
        Avatar.PauseInput();
        var fadeImage = Camera.GetComponent <FadeImageEffect>();

        yield return(fadeImage.FadeRoutine(IndexDatabase.Instance().Fades.GetData(data.FadeOutTag), false, 0.0f));

        yield return(fadeImage.FadeRoutine(IndexDatabase.Instance().Fades.GetData(data.FadeInTag), true, 3.0f));

        yield return(CoUtils.RunTween(MapOverlayUI.Instance().miniPhone.transform.DOLocalMoveY(0.0f, 1.0f)));

        IsTransitioning = false;
        Avatar.UnpauseInput();
    }
Exemple #2
0
    public IEnumerator TeleportRoutine(string mapName, string targetEventName, OrthoDir?facing = null, bool isRaw = false)
    {
        bool avatarExists = Avatar != null;

        if (avatarExists)
        {
            Avatar.PauseInput();
        }
        TransitionData data = IndexDatabase.Instance().Transitions.GetData(FadeComponent.DefaultTransitionTag);

        if (!isRaw)
        {
            yield return(Camera.GetComponent <FadeComponent>().TransitionRoutine(data, () => {
                RawTeleport(mapName, targetEventName, facing);
            }));
        }
        else
        {
            RawTeleport(mapName, targetEventName, facing);
        }
        if (avatarExists)
        {
            Avatar.UnpauseInput();
        }
    }
Exemple #3
0
    // === LUA CALLABLE ============================================================================

    protected DynValue HasItem(DynValue itemLua)
    {
        var key  = itemLua.String;
        var data = IndexDatabase.Instance().CombatItems.GetData(key);

        return(Marshal(Global.Instance().Data.Inventory.ContainsItemType(data)));
    }
Exemple #4
0
    public void PlaySFX(string key)
    {
        IndexDatabase db   = Global.Instance().Database;
        AudioClip     clip = db.SFX.GetData(key).clip;

        StartCoroutine(PlaySFXRoutine(sfxSource, clip));
    }
Exemple #5
0
 public CombatItem(SerializedCombatItem data) : this()
 {
     Data          = IndexDatabase.Instance().CombatItems.GetData(data.dataKey);
     UsesWhenAdded = data.usesWhenAdded;
     UsesRemaining = data.usesRemaining;
     Effect        = AbilEffectFactory.CreateEffect(Data.warhead, this);
 }
Exemple #6
0
    public IEnumerator TeleportRoutine(string mapName, Vector2Int location, OrthoDir?facing = null, bool isRaw = false)
    {
        Avatar?.PauseInput();
        TransitionData data = IndexDatabase.Instance().Transitions.GetData(FadeComponent.DefaultTransitionTag);
        var            mult = Global.Instance().Data.GetSwitch("long_fade") ? 3 : 1;

        if (Global.Instance().Data.GetSwitch("long_fade"))
        {
            StartCoroutine(Global.Instance().Audio.FadeOutRoutine(1.0f));
        }
        if (!isRaw)
        {
            var fadeIn = IndexDatabase.Instance().Fades.GetData(data.FadeInTag);
            yield return(Camera.GetComponent <FadeImageEffect>().FadeRoutine(fadeIn, false, mult));

            RawTeleport(mapName, location, facing);
            var fadeOut = IndexDatabase.Instance().Fades.GetData(data.FadeOutTag);
            yield return(Camera.GetComponent <FadeImageEffect>().FadeRoutine(fadeOut, true, mult));
        }
        else
        {
            RawTeleport(mapName, location, facing);
        }
        Avatar.UnpauseInput();
    }
Exemple #7
0
    private IEnumerator OpenRoutine()
    {
        var textbox = MapOverlayUI.Instance().textbox;

        if (encounterKey != null && encounterKey.Length > 0)
        {
            var party = IndexDatabase.Instance().Parties.GetData(encounterKey);
            yield return(BattleView.SpawnBattleRoutine(party));
        }
        else if (itemKey != null && itemKey.Length > 0)
        {
            if (isCollectable)
            {
                var collectable = IndexDatabase.Instance().Collectables.GetData(itemKey);
                Global.Instance().Audio.PlaySFX(sfxKey);
                Global.Instance().Data.Collectables.AddItem(collectable);
                Global.Instance().Data.SetSwitch(SwitchName, true);
                UpdateSprite();
                if (collectable.chestName != null && collectable.chestName.Length > 0)
                {
                    yield return(textbox.SpeakRoutine("Retrieved " + UIUtils.GlyphifyString(collectable.chestName) + "."));
                }
                else
                {
                    yield return(textbox.SpeakRoutine("Retrieved a " + UIUtils.GlyphifyString(collectable.displayName) + "."));
                }
            }
            else
            {
                var item = new CombatItem(IndexDatabase.Instance().CombatItems.GetData(itemKey));
                if (Global.Instance().Data.Inventory.IsFull())
                {
                    yield return(textbox.SpeakRoutine("No room for more items."));
                }
                else
                {
                    Global.Instance().Audio.PlaySFX(sfxKey);
                    Global.Instance().Data.Inventory.Add(item);
                    Global.Instance().Data.SetSwitch(SwitchName, true);
                    UpdateSprite();
                    if (isKey)
                    {
                        yield return(textbox.SpeakRoutine("Retrieved the " + item.Name + "."));
                    }
                    else
                    {
                        yield return(textbox.SpeakRoutine("Retrieved a " + item.Name + "."));
                    }
                }
            }
            yield return(textbox.DisableRoutine());
        }
        else
        {
            yield return(textbox.SpeakRoutine("Empty."));

            yield return(textbox.DisableRoutine());
        }
    }
 public Client GetClient(string tag)
 {
     if (!clientsByTag.ContainsKey(tag))
     {
         clientsByTag[tag] = new Client(IndexDatabase.Instance().Clients.GetData(tag));
     }
     return(clientsByTag[tag]);
 }
    public Messenger()
    {
        conversationsByClient = new Dictionary <Client, Conversation>();
        clientsByTag          = new Dictionary <string, Client>();

        Lua = new LuaCutsceneContext();
        Lua.Initialize();

        me = IndexDatabase.Instance().Clients.GetData("you");
    }
Exemple #10
0
    public IEnumerator StartGameRoutine(string map, string target)
    {
        SceneManager.LoadScene("Map2D", LoadSceneMode.Single);
        var transition = IndexDatabase.Instance().Transitions.GetData(FadeComponent.DefaultTransitionTag);

        yield return(Global.Instance().Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(transition.GetFadeOut(), false, 0.0f));

        yield return(Global.Instance().Maps.TeleportRoutine(map, target, OrthoDir.South, true));

        yield return(Global.Instance().Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(transition.GetFadeIn(), true));
    }
Exemple #11
0
 private bool IsOpen()
 {
     if (isKey)
     {
         var item = IndexDatabase.Instance().CombatItems.GetData(itemKey);
         return(Global.Instance().Data.Inventory.ContainsItemType(item));
     }
     else
     {
         return(Global.Instance().Data.GetSwitch(SwitchName));
     }
 }
    private IEnumerator GoToFinaleRoutine()
    {
        TransitionData data      = IndexDatabase.Instance().Transitions.GetData("default");
        var            fadeImage = Global.Instance().Maps.Camera.GetComponent <FadeImageEffect>();

        yield return(fadeImage.FadeRoutine(IndexDatabase.Instance().Fades.GetData(data.FadeOutTag), false, 0.0f));

        Global.Instance().Maps.Avatar.transform.SetParent(null);
        UnityEngine.Object.DontDestroyOnLoad(Global.Instance().Maps.Avatar.gameObject);
        Global.Instance().Maps.Avatar.transform.position = new Vector3(-100, 0, 0);
        SceneManager.LoadScene("Ending");
    }
    public void PlaySFX(string key, float muteDuration = 0.0f)
    {
        var data = IndexDatabase.Instance().SFX.GetData(key);

        if (data == null)
        {
            return;
        }
        var clip = data.clip;

        StartCoroutine(PlaySFXRoutine(sfxSource, clip, muteDuration));
    }
Exemple #14
0
 public void SetByTag(string tag)
 {
     if (tag == null)
     {
         tag = "null";
     }
     else
     {
         var spritesheet = IndexDatabase.Instance().FieldSprites.GetDataOrNull(tag).spriteSheet;
         LoadSpritesheetData(spritesheet);
     }
 }
Exemple #15
0
    private IEnumerator OpenRoutine()
    {
        var data    = IndexDatabase.Instance().CombatItems.GetData(itemKey);
        var textbox = MapOverlayUI.Instance().textbox;

        Global.Instance().Data.SetSwitch(SwitchName, true);
        yield return(textbox.SpeakRoutine("Used the " + UIUtils.GlyphifyString(data.abilityName) + "."));

        yield return(textbox.DisableRoutine());

        Event.IsSwitchEnabled = false;
    }
Exemple #16
0
    public IEnumerator LoadGameRoutine(int slot)
    {
        Data = LoadGameDataForSlot(slot);
        SceneManager.LoadScene("Map2D", LoadSceneMode.Single);
        var transition = IndexDatabase.Instance().Transitions.GetData(FadeComponent.DefaultTransitionTag);

        yield return(Global.Instance().Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(transition.GetFadeOut(), false, 0.0f));

        yield return(Global.Instance().Maps.TeleportRoutine(Data.MapPath, Data.MapLocation, OrthoDir.South, true));

        Global.Instance().Audio.PlayBGM(Data.CurrentBGMKey);
        yield return(Global.Instance().Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(transition.GetFadeIn(), true));
    }
Exemple #17
0
        // Send indexes to all trusted nodes that are online
        // For use after a backup and associated index insertion have occurred
        public void sendIndexes()
        {
            IndexDatabase idd = new IndexDatabase();

            if (!idd.TablesEmpty()) //if there are indexes to send
            {
                DistributionDatabase ddb      = new DistributionDatabase();
                List <string>        guidList = new List <string>();
                NodeDatabase         ndb      = new NodeDatabase();

                string online      = "online";
                string indexDBCopy = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\indexes_" + (Properties.Settings.Default.guid).ToString() + ".s3db";

                if (System.IO.File.Exists(idd.GetPathFileName()))
                {
                    try
                    {
                        System.IO.File.Copy(idd.GetPathFileName(), indexDBCopy, true);
                    }
                    catch (System.IO.IOException e)
                    {
                        Debug.Print(e.Message);
                    }
                }

                guidList = ndb.SelectGUID();

                foreach (string currentGUID in guidList)
                {
                    if (Node.GetGuid() != Guid.Parse(currentGUID) && ddb.GetStatus(currentGUID) == online && ndb.SelectNodeTrusted(Guid.Parse(currentGUID)) == "yes")
                    {
                        Guid             myGuid    = Node.GetGuid();
                        TcpClient        tcpClient = new TcpClient((ndb.SelectNodeIp(Guid.Parse(currentGUID))).ToString(), 7890);
                        ClientThread     ct        = new ClientThread(tcpClient, false, myGuid);
                        PushIndexRequest pir       = new PushIndexRequest(indexDBCopy, new FileInfo(indexDBCopy).Length);
                        ct.EnqueueWork(pir);
                        NetworkResponse response = (NetworkResponse)ct.DequeueEvent();
                        while (ct.IsWorking())
                        {
                            Thread.Sleep(1000);
                        }
                        ct.RequestStop();
                        while (ct.IsAlive())
                        {
                            Thread.Sleep(1000);
                        }
                    }
                }
            }
        }
Exemple #18
0
    private void RemoveItem(DynValue itemLua, DynValue isCollectableLua)
    {
        var key           = itemLua.String;
        var isCollectable = isCollectableLua.IsNil() || isCollectableLua.Boolean;

        if (isCollectable)
        {
            Global.Instance().Data.Collectables.RemoveItem(key);
        }
        else
        {
            var data = IndexDatabase.Instance().CombatItems.GetData(key);
            Global.Instance().Data.Inventory.DropItemType(data);
        }
    }
Exemple #19
0
    public void Awake()
    {
        var settings = new JsonSerializerSettings();

        settings.Converters.Add(new StatSetConverter());
        settings.Converters.Add(new UnitConverter());
        settings.Converters.Add(new InventoryConverter());
        serializer = JsonSerializer.Create(settings);

        Data = new GameData {
            Party = new Party(),
        };
        Data.Party = new Party(IndexDatabase.Instance().Parties.defaultParty);
        LoadOrCreateSystemMemory();
    }
Exemple #20
0
 private void OnInteract(object sender)
 {
     if (!IsOpen)
     {
         var data = IndexDatabase.Instance().CombatItems.GetData(itemKey);
         if (Global.Instance().Data.Inventory.ContainsItemType(data))
         {
             StartCoroutine(OpenRoutine());
         }
         else
         {
             StartCoroutine(ClosedRoutine());
         }
     }
 }
Exemple #21
0
    private void AddItem(DynValue itemLua, DynValue isCollectableLua)
    {
        var key           = itemLua.String;
        var isCollectable = !isCollectableLua.IsNil() && isCollectableLua.Boolean;

        if (isCollectable)
        {
            Global.Instance().Data.Collectables.AddItem(key);
        }
        else
        {
            var data = IndexDatabase.Instance().CombatItems.GetData(key);
            var item = new CombatItem(data);
            Global.Instance().Data.Inventory.Add(item);
        }
    }
Exemple #22
0
    private MeatGroupData FindMeatGroup()
    {
        var groups = IndexDatabase.Instance().MeatGroups.GetAll();

        foreach (var group in groups)
        {
            foreach (var family in group.families)
            {
                if (family == data)
                {
                    return(group);
                }
            }
        }
        return(null);
    }
Exemple #23
0
    public IEnumerator TeleportRoutine(string mapName, Vector2Int location, OrthoDir?facing = null, bool isRaw = false)
    {
        Avatar?.PauseInput();
        TransitionData data = IndexDatabase.Instance().Transitions.GetData(FadeComponent.DefaultTransitionTag);

        if (!isRaw)
        {
            yield return(Camera.GetComponent <FadeComponent>().TransitionRoutine(data, () => {
                RawTeleport(mapName, location, facing);
            }));
        }
        else
        {
            RawTeleport(mapName, location, facing);
        }
        Avatar.UnpauseInput();
    }
Exemple #24
0
        public MainForm()
        {
            InitializeComponent();
            numUpDownMaxBackupCapacity.Value = Settings.Default.maxBackupCapacity;
            db      = new NodeDatabase();
            indexDB = new IndexDatabase();
            DataTable dt = db.GetNodes();

            dataGridViewNodeSets.DataSource = dt;

            ebic = new EBInterfaceClient();

            /*
             * dataGridViewNodeSets.Rows.Add("936DA01F-9ABD-4d9d-80C7-02AF85C822A8", "PC1", "192.168.1.1", "00-21-70-FE-23-EF", "1", "51", "89", "0", "100","yes");
             * dataGridViewNodeSets.Rows.Add("936DA01F-9ABD-4d9d-80C7-02AF85C822A8", "PC2", "192.168.1.2", "00-21-69-FE-23-AB", "32", "50", "88", "25", "75", "yes");
             * dataGridViewNodeSets.Rows.Add("936DA01F-9ABD-4d9d-80C7-02AF85C822AC", "PC3", "192.168.1.3", "00-21-69-FE-23-AC", "62", "49", "87", "50", "50", "no");
             */
        }
Exemple #25
0
    private void Battle(DynValue partyLua, DynValue bgmLua)
    {
        var   partyTag  = partyLua.String;
        var   bgmTag    = bgmLua.IsNil() ? null : bgmLua.String;
        Party party     = null;
        var   partyData = IndexDatabase.Instance().Parties.GetDataOrNull(partyTag);

        if (partyData != null)
        {
            party = new Party(partyData);
        }
        else
        {
            var encounterData = IndexDatabase.Instance().Encounters.GetData(partyTag);
            party = new Party(encounterData);
        }
        RunRoutineFromLua(BattleView.SpawnBattleRoutine(party, bgmTag));
    }
Exemple #26
0
        // After the local node receives the index file from a foreign node
        // Merge that foreign index file with the local index file, then delete the foreign index file
        public void processIndexes(string filePath)
        {
            IndexDatabase ind = new IndexDatabase();

            ind.MergeIndexFiles(filePath);

            if (System.IO.File.Exists(filePath))
            {
                try
                {
                    System.IO.File.Delete(filePath);
                }
                catch (System.IO.IOException e)
                {
                    Debug.Print(e.Message);
                }
            }
        }
Exemple #27
0
 public void PlayBGM(string key)
 {
     if (key != CurrentBGMKey && key != NoChangeBGMKey)
     {
         CurrentBGMKey = key;
         if (key == null || key == NoBGMKey)
         {
             bgmSource.Stop();
         }
         else
         {
             bgmSource.volume = 1.0f;
             AudioClip clip = IndexDatabase.Instance().BGM.GetData(key).track;
             bgmSource.clip = clip;
             bgmSource.Play();
         }
     }
 }
    public IEnumerator PanRoutine()
    {
        var cameraTween   = mainCamera.transform.DOLocalMoveY(-4.5f, transitionDuration);
        var panoramaTween = panorama.transform.DOLocalMoveY(0.0f, transitionDuration);
        var starTween     = starSprite.DOFade(0.0f, transitionDuration);
        var titleTween    = title.DOFade(0.0f, transitionDuration);

        cameraTween.SetEase(Ease.Linear);
        panoramaTween.SetEase(Ease.Linear);
        starTween.SetEase(Ease.Linear);

        cameraTween.Play();
        yield return(null);

        panoramaTween.Play();
        yield return(null);

        starTween.Play();
        yield return(null);

        title.DOFade(0.0f, 1.0f).Play();
        yield return(null);

        StartCoroutine(CoUtils.RunAfterDelay(3, () => { StartCoroutine(CrossfadeObj(credit1)); }));
        StartCoroutine(CoUtils.RunAfterDelay(8, () => { StartCoroutine(CrossfadeObj(credit2)); }));
        StartCoroutine(CoUtils.RunAfterDelay(13, () => { StartCoroutine(CrossfadeObj(credit3)); }));
        StartCoroutine(CoUtils.RunAfterDelay(18, () => { StartCoroutine(CrossfadeObj(credit4)); }));


        yield return(CoUtils.Wait(transitionDuration - 11f));

        yield return(CrossfadeObj(credit5));

        yield return(CoUtils.Wait(1.0f));

        StartCoroutine(Global.Instance().Audio.FadeOutRoutine(3.0f));
        TransitionData data = IndexDatabase.Instance().Transitions.GetData("fade_long");

        yield return(fade.FadeRoutine(IndexDatabase.Instance().Fades.GetData(data.FadeOutTag)));

        Global.Instance().StartCoroutine(Global.Instance().Maps.NewGameRoutine(fade));
    }
    private void Fade(DynValue type)
    {
        var      typeString = type.String;
        FadeData fade;
        bool     invert = false;

        if (typeString == "normal")
        {
            fade   = lastFade;
            invert = true;
        }
        else
        {
            fade = IndexDatabase.Instance().Fades.GetData(typeString);
        }
        lastFade = fade;
        var globals = Global.Instance();

        RunRoutineFromLua(globals.Maps.Camera.GetComponent <FadeComponent>().FadeRoutine(fade, invert));
    }
Exemple #30
0
    public IEnumerator ForeignPhoneRoutine(string key)
    {
        MapOverlayUI.Instance().foreignPhone.gameObject.SetActive(true);
        var phoneData         = IndexDatabase.Instance().ForeignPhones.GetData(key);
        var originalMessenger = Current;

        Current = new Messenger();
        foreach (var script in phoneData.toRun)
        {
            Current.SetNextScript(script, true);
        }
        MapOverlayUI.Instance().foreignPhone.SetMessenger(Current);
        yield return(MapOverlayUI.Instance().phoneSystem.FlipForeignRoutine());

        yield return(CoUtils.TaskAsRoutine(MapOverlayUI.Instance().foreignPhone.DoMenu()));

        yield return(MapOverlayUI.Instance().phoneSystem.FlipForeignRoutine());

        Current = originalMessenger;
        MapOverlayUI.Instance().foreignPhone.gameObject.SetActive(false);
    }