static void Main(string[] args)
        {
            Console.WriteLine("---- Xml Interface ----");

            /*
             * Create XML System Here
             * and execute prepared strings
             */
            IFactory xmlFactory = new XMLFactory();
            ISystem  xmlSystem  = CreateSystem(xmlFactory);

            Execute(xmlSystem, "xml_input.txt");
            Console.WriteLine();

            Console.WriteLine("---- KeyValue Interface ----");

            /*
             * Create INI System Here
             * and execute prepared strings
             */
            IFactory kvFactory      = new KeyValueFactory();
            ISystem  keyValueSystem = CreateSystem(kvFactory);

            Execute(keyValueSystem, "key_value_input.txt");
            Console.WriteLine();
        }
示例#2
0
        public void readMessage(GameMessage message)
        {
            switch (message.type)
            {
            case MessageType.LOAD_SAVED_GAME:
                PartiesSingleton.currentGame = XMLGame.getInstance().loadSavedGame((string)message.parameters[0]);
                GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().generateShop();
                break;

            case MessageType.START_NEW_GAME:
                PartiesSingleton.currentGame          = XMLGame.getInstance().createNewGame();
                PartiesSingleton.currentGame.saveLink = (string)message.parameters[1];
                PartiesSingleton.currentGame.userName = (string)message.parameters[0];

                GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().openMainMenu();
                GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().generateShop();
                break;

            case MessageType.SAVE_GAME:
                XMLGame.getInstance().saveGame(PartiesSingleton.currentGame);
                break;

            case MessageType.GENERATE_SHOP:
                PartiesSingleton.currentShop = new Shop {
                    gold  = 100,
                    items = new List <Item> {
                        XMLFactory.loadItem("configs/items/weapons/mage_stuff"),
                        XMLFactory.loadItem("configs/items/shields/shield")
                    }
                };
                break;
            }
        }
示例#3
0
    private void reload()
    {
        foreach (Transform child in personTable.transform)
        {
            Destroy(child.gameObject);
        }

        var personFactory = factory.GetComponent <PersonFactory>();

        personFactory.availableEnemy.Add(XMLFactory.loadPerson("configs/monsters/trolls/heavyTroll"));
        personFactory.availableEnemy.Add(XMLFactory.loadPerson("configs/monsters/trolls/fastTroll"));
        personFactory.availableEnemy.Add(XMLFactory.loadPerson("configs/monsters/trolls/trollSummoner"));

        personFactory.setController(personTable);

        PartiesSingleton.clear();
        EventQueueSingleton.queue.events.Clear();
        EventQueueSingleton.queue.nextEventTime = 0.0f;
        EventQueueSingleton.queue.realTime      = Time.fixedTime;
        EventQueueSingleton.queue.fastFight     = false;

        foreach (var p in PartiesSingleton.currentGame.activeHeroes.FindAll(p => p.isActive))
        {
            PartiesSingleton.heroes.addPerson(personFactory.create(p));
        }

        int count = 0;

        foreach (var ability in PartiesSingleton.player.abilityList)
        {
            var uAbility = Instantiate(userAbility, transform.Find("UserAbility"), false);
            uAbility.GetComponent <UserAbilityController>().ability = ability;
            uAbility.transform.localPosition = new Vector2(0.0f, 0.0f + 1.2f * count++);;
        }

        int powerCalculated = 0;

        foreach (var p in personFactory.generatePersonList(mapPoint))
        {
            powerCalculated += p.calculatePower();
            PartiesSingleton.enemies.addPerson(personFactory.create(p));
        }
        foreach (var go in PartiesSingleton.enemies.getPartyList())
        {
            go.GetComponent <PersonController>().person.initHealthMana();
        }
        enemyPowerCost.GetComponent <Text>().text = powerCalculated.ToString();


        foreach (var hero in PartiesSingleton.heroes.getLivePersons())
        {
            hero.generateEvents(0.0f);
        }

        foreach (var enemy in PartiesSingleton.enemies.getLivePersons())
        {
            enemy.generateEvents(0.0f);
        }
    }
    public void startNewGame()
    {
        var person = XMLFactory.loadPerson("configs/monsters/heroes/mage");

        PartiesSingleton.currentGame.selectedHeroes.Add(person);

        generateMessage(new GameMessage(MessageType.CLOSE_ACTIVE_WINDOW));

        var gm = new GameMessage(MessageType.START_NEW_GAME);

        gm.parameters.Add(transform.Find("NameInput/InputField/Text").GetComponent <Text>().text);
        gm.parameters.Add(link);
        generateMessage(gm);
    }
示例#5
0
        public Game loadSavedGame(string link)
        {
            var xmldoc = new XmlDocument();

            xmldoc.Load(link);
            XmlNode loadGame = xmldoc[XML_SAVED_GAME];

            var game = new Game {
                saveLink  = link,
                userName  = loadGame[XML_USER_NAME].InnerText,
                gold      = int.Parse(loadGame[XML_GOLD].InnerText),
                startGame = Time.time,
                gameTime  = DateTime.ParseExact(loadGame[XML_TIME].InnerText, TIME_FORMAT, CultureInfo.CurrentCulture)
            };

            foreach (XmlNode xmlPerson in loadGame[XML_PERSONS])
            {
                var person = XMLFactory.loadPerson(xmlPerson[XML_PERSON_TYPE].InnerText);
                person.name     = xmlPerson[XML_PERSON_NAME].InnerText;
                person.isActive = xmlPerson[XML_PERSON_ISACTIVE].InnerText.Equals(true.ToString());
                person.setLevel(int.Parse(xmlPerson[XML_PERSON_LEVEL].InnerText));
                person.setExpirience(int.Parse(xmlPerson[XML_PERSON_EXPERIENCE].InnerText));

                person.activeInventory.leftHand   = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_LEFT_HAND].InnerText);
                person.activeInventory.rightHand  = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_RIGHT_HAND].InnerText);
                person.activeInventory.armor      = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_ARMOR].InnerText);
                person.activeInventory.activeItem = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_ACTIVE_ITEM].InnerText);

                person.knownAbilities.FindAll(ability =>
                                              !string.IsNullOrEmpty(ability.resource))
                .ForEach(ability => ability.isActive = false);

                foreach (XmlNode xmlAbility in xmlPerson[XML_PERSON_ACTIVE_ABILITIES])
                {
                    person.findAbility(xmlAbility.InnerText).isActive = true;
                }

                person.place = XMLFactory.laodPosition(xmlPerson[XML_PERSON_POSITION]);

                game.selectedHeroes.Add(person);
            }

            foreach (XmlNode xmlItem in loadGame[InventoryController.INVENTORY_OBJECT])
            {
                game.inventory.Add(XMLFactory.loadItem(xmlItem.InnerText));
            }

            return(game);
        }
示例#6
0
        static void Main(string[] args)
        {
            Console.WriteLine("---- Xml Interface ----");

            // tworznie systemów
            ISystemFactory xmlFactory = new XMLFactory();
            ISystem        xmlSystem  = CreateSystem(xmlFactory);

            Execute(xmlSystem, "xml_input.txt");
            Console.WriteLine();
            Console.WriteLine("---- KeyValue Interface ----");

            // tworznie systemów
            ISystemFactory keyvalueFactory = new KeyValueFactory();
            ISystem        keyValueSystem  = CreateSystem(keyvalueFactory);

            Execute(keyValueSystem, "key_value_input.txt");
            Console.WriteLine();
        }
示例#7
0
    public SummonGolem()
    {
        var summon = XMLFactory.loadPerson("configs/monsters/golems/golem");

        getAbilityTactic().summon = summon;
        timeCast = 1.0f;
        manaCost = 1;
        image    = Constants.loadSprite("texture/Skills/buffIcons", "buffIcons_60");
        name     = "Summon Golem";
        type     = "activeAbility";

        targetTactic = new ItselfTargetTactic();

        var effect = new SummonEffect();

        effect.person   = summon;
        effect.duration = 0;
        effectList.Add(effect);
    }
示例#8
0
    public MissionMap loadMissionFromFile(string link)
    {
        var missionMap = new MissionMap();
        var textAsset  = (TextAsset)Resources.Load(link);
        var xmldoc     = new XmlDocument();

        xmldoc.LoadXml(textAsset.text);

        var map = xmldoc.GetElementsByTagName("map").Item(0);

        foreach (XmlNode xmlMapPoint in map)
        {
            var mapPoint = new MapPoint();
            mapPoint.id         = int.Parse(xmlMapPoint["id"].InnerText);
            mapPoint.fightPower = int.Parse(xmlMapPoint["fightPower"].InnerText);

            mapPoint.count = int.Parse(xmlMapPoint["count"].InnerText);

            if (xmlMapPoint["final"] != null &&
                xmlMapPoint["final"].InnerText == "true")
            {
                mapPoint.isFinal = true;
            }
            else
            {
                mapPoint.isFinal = false;
            }
            if (xmlMapPoint["dependList"].InnerText.Length > 0)
            {
                mapPoint.dependList.AddRange(xmlMapPoint["dependList"].InnerText.Split(','));
            }

            mapPoint.position = XMLFactory.laodPosition(xmlMapPoint["position"]);
            if (mapPoint.dependList.Count == 0)
            {
                mapPoint.isEnable = true;
            }
            missionMap.fights.Add(mapPoint);
        }
        return(missionMap);
    }