예제 #1
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);
    }
예제 #3
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);
        }
예제 #4
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);
    }