Beispiel #1
0
        public static void save_Conditions_mask(Save_tag path, Conditions_mask c)
        {
            Save_tag a = path.copy();

            a.add_tag("simple_mask");
            save_bool(a, c.true_for_AND_mask_false_for_OR_mask);
        }
Beispiel #2
0
        public static void save_Condition(Save_tag path, Condition c)
        {
            Save_tag a = path.copy();

            a.add_tag("ID");
            save_long(a, c.get_ID());
            List <float> parameters = new List <float>();
            Save_tag     e          = path.copy();

            e.add_tag("text");
            save_string(e, c.get_info());
            Save_tag b = path.copy();

            b.add_tag("params");
            if (c.get_ID() == 1)
            {
                parameters.Add(0.0f);
            }
            else if (c.get_ID() == 2)
            {
                Cumulative_condition cc = (Cumulative_condition)c;
                parameters.Add(cc.get_counter());
                parameters.Add(cc.max_count);
            }
            else if (c.get_ID() == 3)
            {
                Player_have_in_inventory phii = (Player_have_in_inventory)c;
                parameters.Add(phii.item_ID);
                parameters.Add(phii.count);
            }
            save_list_of_floats(b, parameters);
        }
Beispiel #3
0
        public static void save_Event(Save_tag path, Event e)
        {
            Save_tag a = path.copy();

            a.add_tag("ID");
            save_long(a, e.get_ID());
            List <float> parameters = new List <float>();
            Save_tag     c          = path.copy();

            c.add_tag("text");
            save_string(c, e.get_info());
            Save_tag b = path.copy();

            b.add_tag("params");
            if (e.get_ID() == 1)
            {
                Block_broken bb = (Block_broken)e;
                parameters.Add(bb.ID_broken);
                parameters.Add(bb.x);
                parameters.Add(bb.y);
                parameters.Add(bb.location);
            }
            else if (e.get_ID() == 2)
            {
                Player_entered_fraction_base pefb = (Player_entered_fraction_base)e;
                parameters.Add(pefb.fraction);
            }
            else if (e.get_ID() == 3)
            {
                Players_inventory_changed pic = (Players_inventory_changed)e;
                parameters.Add(pic.item_ID);
                parameters.Add(pic.count);
            }
            save_list_of_floats(b, parameters);
        }
Beispiel #4
0
        public static Condition load_Condition(Save_tag path)
        {
            Condition e = null;
            Save_tag  a = path.copy();

            a.add_tag("ID");
            long     ID = load_long(a);
            Save_tag b  = path.copy();

            b.add_tag("text");
            string   text = load_string(b);
            Save_tag c    = path.copy();

            c.add_tag("params");
            List <float> ps = load_list_of_floats(c);

            if (ID == 1)
            {
                e = new Empty_Condition();
            }
            else if (ID == 2)
            {
                e = new Cumulative_condition((int)ps[1], (int)ps[0]);
            }
            else if (ID == 3)
            {
                e = new Player_have_in_inventory((long)ps[0], ps[1]);
            }
            return(e);
        }
Beispiel #5
0
        public static void save_Trader(Save_tag path, Trader t)
        {
            Save_tag a = path.copy();

            a.add_tag("Inventory");
            save_Inventory(a, t);
            Save_tag b = path.copy();

            b.add_tag("inf_res");
            save_bool(b, t.infinity_resources);
            Save_tag c = path.copy();

            c.add_tag("change_rel");
            save_bool(c, t.change_relations);
            Save_tag d = path.copy();

            d.add_tag("fraction");
            save_int(d, t.fraction);
            Save_tag e = path.copy();

            e.add_tag("change");
            save_double(e, t.changing_per_purchase);
            Save_tag f = path.copy();

            f.add_tag("ex_patterns");
            save_list_of_Exchange_Patterns(f, t.patterns);
        }
Beispiel #6
0
        public static Trader load_Trader(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("Inventory");
            Inventory a1 = load_Inventory(a);
            Save_tag  b  = path.copy();

            b.add_tag("inf_res");
            bool     b1 = load_bool(b);
            Save_tag c  = path.copy();

            c.add_tag("change_rel");
            bool     c1 = load_bool(c);
            Save_tag d  = path.copy();

            d.add_tag("fraction");
            int      d1 = load_int(d);
            Save_tag e  = path.copy();

            e.add_tag("change");
            float    e1 = (float)load_double(e);
            Save_tag f  = path.copy();

            f.add_tag("ex_patterns");
            List <Exchange_Pattern> f1 = load_list_of_Exchange_Patterns(f);
            Trader tr = new Trader(a1, f1, b1, c1, d1, e1);

            return(tr);
        }
Beispiel #7
0
        public static Event load_Event(Save_tag path)
        {
            Event    e = null;
            Save_tag a = path.copy();

            a.add_tag("ID");
            long     ID = load_long(a);
            Save_tag b  = path.copy();

            b.add_tag("text");
            string   text = load_string(b);
            Save_tag c    = path.copy();

            c.add_tag("params");
            List <float> ps = load_list_of_floats(c);

            if (ID == 1)
            {
                e = new Block_broken((int)(ps[0]), (int)(ps[1]), (int)(ps[2]), (int)(ps[3]));
            }
            else if (ID == 2)
            {
                e = new Player_entered_fraction_base((int)(ps[0]));
            }
            else if (ID == 3)
            {
                e = new Players_inventory_changed((long)(ps[0]), ps[1]);
            }
            return(e);
        }
Beispiel #8
0
        public void save_string(List <Save_message> mes, Save_tag tag, string s)
        {
            string simple_tag = tag.get_tag(0);
            int    k          = index_of_this_tag(simple_tag, mes);

            if (k == -1)
            {
                k = mes.Count;
                mes.Add(new Save_message(simple_tag, ""));
            }
            if (tag.tags_count() == 1)
            {
                mes[k].set_text(s);
            }
            else
            {
                Save_tag new_tag = new Save_tag(tag.get_tag(1));
                for (int i = 2; i < tag.tags_count(); i++)
                {
                    new_tag.add_tag(tag.get_tag(i));
                }
                List <Save_message> tmp = string_to_save_message_list(mes[k].get_text());
                save_string(tmp, new_tag, s);
                string d = "";
                for (int i = 0; i < tmp.Count; i++)
                {
                    d += tmp[i].full_text();
                }
                mes[k].set_text(d);
            }
        }
Beispiel #9
0
        public static Conditions_mask load_Conditions_mask(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("simple_mask");
            Conditions_mask cm = new Conditions_mask(load_bool(a));

            return(cm);
        }
Beispiel #10
0
        public Save_tag copy()
        {
            Save_tag st = new Save_tag(tags[0]);

            for (int i = 1; i < tags.Count; i++)
            {
                st.add_tag(tags[i]);
            }
            return(st);
        }
Beispiel #11
0
        public static void save_Inventory(Save_tag path, Inventory inv)
        {
            Save_tag a = path.copy();

            a.add_tag("IDs");
            save_list_of_long_ints(a, inv.codes);
            Save_tag b = path.copy();

            b.add_tag("numbers");
            save_list_of_floats(b, inv.numbers);
        }
Beispiel #12
0
        public static void save_Graph(Save_tag path, Graph g)
        {
            Save_tag a = path.copy();

            a.add_tag("starts");
            save_list_of_ints(a, g.get_link_starts());
            Save_tag b = path.copy();

            b.add_tag("ends");
            save_list_of_ints(b, g.get_link_ends());
        }
Beispiel #13
0
        public static void save_list_of_Triggers(Save_tag path, List <Trigger> e)
        {
            Save_tag r = path.copy();

            r.add_tag("count");
            save_int(r, e.Count);
            for (int i = 0; i < e.Count; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                save_Trigger(er, e[i]);
            }
        }
Beispiel #14
0
        public static void save_list_of_Console_message(Save_tag path, List <Console_message> e)
        {
            Save_tag r = path.copy();

            r.add_tag("count");
            save_int(r, e.Count);
            for (int i = 0; i < e.Count; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                save_Console_message(er, e[i]);
            }
        }
Beispiel #15
0
        public static void save_list_of_Exchange_Patterns(Save_tag path, List <Exchange_Pattern> e)
        {
            Save_tag r = path.copy();

            r.add_tag("count");
            save_int(r, e.Count);
            for (int i = 0; i < e.Count; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                save_Exchange_Pattern(er, e[i]);
            }
        }
Beispiel #16
0
        public static void save_list_of_Game_Actions(Save_tag path, List <Game_Action> e)
        {
            Save_tag r = path.copy();

            r.add_tag("count");
            save_int(r, e.Count);
            for (int i = 0; i < e.Count; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                save_Game_Action(er, e[i]);
            }
        }
Beispiel #17
0
        public static Inventory load_Inventory(Save_tag path)
        {
            Inventory inv = new Inventory();
            Save_tag  a   = path.copy();

            a.add_tag("IDs");
            inv.codes = load_list_of_long_ints(a);
            Save_tag b = path.copy();

            b.add_tag("numbers");
            inv.numbers = load_list_of_floats(b);
            return(inv);
        }
Beispiel #18
0
        public static Trigger load_Trigger(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("events");
            List <Event> a1 = load_list_of_Events(a);
            Save_tag     b  = path.copy();

            b.add_tag("conditions");
            List <Condition> b1 = load_list_of_Conditions(b);
            Save_tag         c  = path.copy();

            c.add_tag("actions");
            List <Game_Action> c1 = load_list_of_Game_Actions(c);
            Save_tag           d  = path.copy();

            d.add_tag("deactivate_actions");
            List <Game_Action> d1 = load_list_of_Game_Actions(d);
            Save_tag           e  = path.copy();

            e.add_tag("conditions_mask");
            Conditions_mask e1 = load_Conditions_mask(e);
            Save_tag        f  = path.copy();

            f.add_tag("description");
            string   f1 = load_string(f);
            Save_tag g  = path.copy();

            g.add_tag("active");
            bool     g1 = load_bool(g);
            Save_tag h  = path.copy();

            h.add_tag("disposable");
            bool     h1 = load_bool(h);
            Save_tag i  = path.copy();

            i.add_tag("endless");
            bool     i1 = load_bool(i);
            Save_tag j  = path.copy();

            j.add_tag("time_to_deactivate");
            int      j1 = load_int(j);
            Save_tag k  = path.copy();

            k.add_tag("start_time");
            int     k1 = load_int(k);
            Trigger tr = new Trigger(k1, i1, g1, a1, b1, c1, h1, j1, d1, e1, f1);

            return(tr);
        }
Beispiel #19
0
        public static Graph load_Graph(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("starts");
            List <int> a1 = load_list_of_ints(a);
            Save_tag   b  = path.copy();

            b.add_tag("ends");
            List <int> b1 = load_list_of_ints(a);
            Graph      g  = new Graph(a1, b1);

            return(g);
        }
Beispiel #20
0
        public static void save_Speech(Save_tag path, Speech s)
        {
            Save_tag a = path.copy();

            a.add_tag("from_player");
            save_bool(a, s.from_player);
            Save_tag b = path.copy();

            b.add_tag("text");
            save_string(b, s.text);
            Save_tag c = path.copy();

            c.add_tag("Actions");
            save_list_of_Game_Actions(c, s.actions);
        }
Beispiel #21
0
        public static void save_Dialogue(Save_tag path, Dialogue d)
        {
            Save_tag a = path.copy();

            a.add_tag("speaker");
            Save_tag b = path.copy();

            b.add_tag("graph");
            Save_tag c = path.copy();

            c.add_tag("speeches");
            save_string(a, d.speaker);
            save_Graph(b, d.graph);
            save_list_of_Speeches(c, d.speeches);
        }
Beispiel #22
0
        public static void save_Trigger(Save_tag path, Trigger t)
        {
            Save_tag a = path.copy();

            a.add_tag("events");
            save_list_of_Events(a, t.events);
            Save_tag b = path.copy();

            b.add_tag("conditions");
            save_list_of_Conditions(b, t.conditions);
            Save_tag c = path.copy();

            c.add_tag("actions");
            save_list_of_Game_Actions(c, t.actions);
            Save_tag d = path.copy();

            d.add_tag("deactivate_actions");
            save_list_of_Game_Actions(d, t.deactivate_actions);
            Save_tag e = path.copy();

            e.add_tag("conditions_mask");
            save_Conditions_mask(e, t.cm);
            Save_tag f = path.copy();

            f.add_tag("description");
            save_string(f, t.description);
            Save_tag g = path.copy();

            g.add_tag("active");
            save_bool(g, t.is_active());
            Save_tag h = path.copy();

            h.add_tag("disposable");
            save_bool(h, t.disposable);
            Save_tag i = path.copy();

            i.add_tag("endless");
            save_bool(i, t.endless);
            Save_tag j = path.copy();

            j.add_tag("time_to_deactivate");
            save_int(j, t.time_to_deactivate);
            Save_tag k = path.copy();

            k.add_tag("start_time");
            save_int(k, t.get_start_time());
        }
Beispiel #23
0
        public static List <Exchange_Pattern> load_list_of_Exchange_Patterns(Save_tag path)
        {
            List <Exchange_Pattern> e = new List <Exchange_Pattern>();
            Save_tag r = path.copy();

            r.add_tag("count");
            int p = load_int(r);

            for (int i = 0; i < p; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                e.Add(load_Exchange_Pattern(er));
            }

            return(e);
        }
Beispiel #24
0
        public static List <Game_Action> load_list_of_Game_Actions(Save_tag path)
        {
            List <Game_Action> e = new List <Game_Action>();
            Save_tag           r = path.copy();

            r.add_tag("count");
            int p = load_int(r);

            for (int i = 0; i < p; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                e.Add(load_Game_Action(er));
            }

            return(e);
        }
Beispiel #25
0
        public static List <Console_message> load_list_of_Console_messages(Save_tag path)
        {
            List <Console_message> e = new List <Console_message>();
            Save_tag r = path.copy();

            r.add_tag("count");
            int p = load_int(r);

            for (int i = 0; i < p; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                e.Add(load_Console_message(er));
            }

            return(e);
        }
Beispiel #26
0
        public static Speech load_Speech(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("from_player");
            bool     a1 = load_bool(a);
            Save_tag b  = path.copy();

            b.add_tag("text");
            String   b1 = load_string(b);
            Save_tag c  = path.copy();

            c.add_tag("Actions");
            List <Game_Action> c1 = load_list_of_Game_Actions(c);

            return(new Speech(b1, a1, c1));
        }
Beispiel #27
0
        public static List <Trigger> load_list_of_Triggers(Save_tag path)
        {
            List <Trigger> e = new List <Trigger>();
            Save_tag       r = path.copy();

            r.add_tag("count");
            int p = load_int(r);

            for (int i = 0; i < p; i++)
            {
                Save_tag er = path.copy();
                er.add_tag("" + i);
                e.Add(load_Trigger(er));
            }

            return(e);
        }
Beispiel #28
0
        public static void save_Game_Action(Save_tag path, Game_Action c)
        {
            Save_tag a = path.copy();

            a.add_tag("ID");
            save_long(a, c.get_ID());
            List <float> parameters = new List <float>();
            Save_tag     e          = path.copy();

            e.add_tag("text");
            save_string(e, c.get_info());
            Save_tag b = path.copy();

            b.add_tag("params");
            if (c.get_ID() == 1)
            {
                Give_player_something gpi = (Give_player_something)c;
                parameters.Add(gpi.ID_given);
                parameters.Add(gpi.amount_given);
            }
            else if (c.get_ID() == 2)
            {
                Shift_quest_from_archive sqfa = (Shift_quest_from_archive)c;
                parameters.Add(sqfa.code);
            }
            else if (c.get_ID() == 3)
            {
                Change_relations cr = (Change_relations)c;
                parameters.Add(cr.fraction);
                parameters.Add(cr.delta);
            }
            else if (c.get_ID() == 4)
            {
                Start_dialogue sd = (Start_dialogue)c;
                Save_tag       q  = path.copy();
                q.add_tag("dialogue");
                save_Dialogue(q, sd.dia);
            }
            else if (c.get_ID() == 5)
            {
                Deal_damage_to_player ddtp = (Deal_damage_to_player)c;
                parameters.Add(ddtp.amount);
            }
            save_list_of_floats(b, parameters);
        }
Beispiel #29
0
        public static Dialogue load_Dialogue(Save_tag path)
        {
            Save_tag a = path.copy();

            a.add_tag("speaker");
            Save_tag b = path.copy();

            b.add_tag("graph");
            Save_tag c = path.copy();

            c.add_tag("speeches");
            string        a1 = load_string(a);
            Graph         b1 = load_Graph(b);
            List <Speech> c1 = load_list_of_Speeches(c);
            Dialogue      d  = new Dialogue(a1, b1, c1);

            return(d);
        }
Beispiel #30
0
        public static Game_Action load_Game_Action(Save_tag path)
        {
            Game_Action c = null;
            Save_tag    a = path.copy();

            a.add_tag("ID");
            long         ID = load_long(a);
            List <float> ps = new List <float>();
            Save_tag     e  = path.copy();

            e.add_tag("text");
            string   s = load_string(e);
            Save_tag b = path.copy();

            b.add_tag("params");
            ps = load_list_of_floats(b);
            if (ID == 1)
            {
                c = new Give_player_something((long)ps[0], ps[1]);
            }
            else if (ID == 2)
            {
                c = new Shift_quest_from_archive((int)(ps[0]));
            }
            else if (ID == 3)
            {
                c = new Change_relations((int)ps[0], ps[1]);
            }
            else if (ID == 4)
            {
                Save_tag q = path.copy();
                q.add_tag("dialogue");
                Dialogue dd = load_Dialogue(q);
                c = new Start_dialogue(dd);
            }
            else if (c.get_ID() == 5)
            {
                c = new Deal_damage_to_player(ps[0]);
            }
            return(c);
        }