Пример #1
0
        List <PetAttackDb> ListaDeGolpesAtualizada(PetName nome)
        {
            //Debug.LogError("Elemetno por fazer");
            return(PetFactory.GetPet(nome).GerenteDeGolpes.listaDeGolpes);

            //personagemG2.RetornaUmCriature(nome).GerenteDeGolpes.listaDeGolpes;
        }
Пример #2
0
        public PetBase(PetName X, int nivel = 1)
        {
            PetBase Y = PetFactory.GetPet(X);

            petFeat             = Y.petFeat;
            atkManager          = Y.GerenteDeGolpes;
            movFeat             = Y.MovFeat;
            alturaCamera        = Y.alturaCamera;
            distanciaCamera     = Y.distanciaCamera;
            alturaCameraLuta    = Y.alturaCameraLuta;
            distanciaCameraLuta = Y.distanciaCameraLuta;
            petId = X;

            if (nivel > 1)
            {
                PetFeat.IncrementaNivel(nivel);
            }


            atkManager.meusGolpes = new List <PetAttackBase>();
            atkManager.meusGolpes.AddRange(GolpesAtivos(nivel, atkManager.listaDeGolpes.ToArray()));


            VerificaSomaDeTaxas();

            if (StManager == null)
            {
                stManager = new StaminaManager();
            }
        }
Пример #3
0
        public static PetManager Initialize(PetName petName, int nivel, Vector3 pos)
        {
            PetBase    P = new PetBase(petName, nivel);
            GameObject G = InstantiatePet(P, pos);

            G.transform.position = MelhoraInstancia.ProcuraPosNoMapa(G.transform.position);
            return(ConfigureCriatureBase(G, P));
        }
Пример #4
0
    public void Update(Guid id, string name, DateTime dateOfBirth)
    {
        var pet = _pets.FirstOrDefault(p => p.Id == id);

        pet.SetName(PetName.Create(name));
        pet.SetDateOfBirth(PetDateOfBirth.Create(dateOfBirth));

        foreach (var domainEvent in pet.DomainEvents)
        {
            _messageBroker.Publish(domainEvent);
        }
    }
Пример #5
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (PetName != null ? PetName.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Species != null ? Species.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (PetHealth != null ? PetHealth.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Owner != null ? Owner.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Birthday.GetHashCode();
         hashCode = (hashCode * 397) ^ PetId;
         return(hashCode);
     }
 }
Пример #6
0
    public void Create(Guid id, string name, DateTime dateOfBirth)
    {
        var pet = new Pet(PetId.Create(id));

        pet.SetName(PetName.Create(name));
        pet.SetDateOfBirth(PetDateOfBirth.Create(dateOfBirth));
        _pets.Add(pet);

        foreach (var domainEvent in pet.DomainEvents)
        {
            _messageBroker.Publish(domainEvent);
        }
    }
Пример #7
0
 public int CompareTo(StoredSRData?other)
 {
     // A null value means that this object is greater.
     if (other == null)
     {
         return(1);
     }
     if (PetName != "" && other.PetName != "")
     {
         return(PetName.CompareTo(other.PetName));
     }
     else
     {
         return(SturdyRef.CompareTo(other.SturdyRef));
     }
 }
Пример #8
0
        public PetAttackDb VerificaGolpeDoNivel(PetName nome, int nivel)
        {
            PetAttackDb retorno = new PetAttackDb();

            listaDeGolpes = ListaDeGolpesAtualizada(nome);

            for (int i = 0; i < listaDeGolpes.Count; i++)
            {
                if (listaDeGolpes[i].NivelDoGolpe == nivel)
                {
                    retorno = listaDeGolpes[i];
                }
            }

            return(retorno);
        }
Пример #9
0
        public PetAttackDb ProcuraGolpeNaLista(PetName nome, AttackNameId esseGolpe)
        {
            PetAttackDb retorno = new PetAttackDb();

            listaDeGolpes = ListaDeGolpesAtualizada(nome);

            for (int i = 0; i < listaDeGolpes.Count; i++)
            {
                if (listaDeGolpes[i].Nome == esseGolpe)
                {
                    retorno = listaDeGolpes[i];
                }
            }

            return(retorno);
        }
Пример #10
0
        //---------------------------------МЕТОДЫ------------------------------------
        private void AddCard()
        {
            int          UserId  = Convert.ToInt32(UserName.ToString());
            int          PetId   = Convert.ToInt32(PetName.ToString());
            PetUserModel PetUser = new PetUserModel();

            PetUser = PetController.GetPetById(PetId);
            if (PetUser.UserId == UserId)
            {
                try
                {
                    height = Convert.ToDouble(Height);
                    weight = Convert.ToDouble(Weight);
                }
                catch (FormatException)
                {
                    MessageBox.Show("Рост и вес должны быть числовыми! Проверьте ввод данных!");
                    return;
                }
                Card newCard = new Card()
                {
                    PetId  = PetId,
                    Height = height,
                    Weight = weight,
                };
                var result = CardController.PostCard(newCard);
                if (result == "true")
                {
                    MessageBox.Show("Карточка добавлена!");
                    var window = System.Windows.Application.Current.Windows[1];
                    if (window != null)
                    {
                        window.Close();
                    }
                }
                else
                {
                    MessageBox.Show("Карточка не была добавлена! Ошибка на сервере!");
                }
            }
            else
            {
                MessageBox.Show("Клиент и питомец не принадлежат друг другу!");
            }
        }
Пример #11
0
    public static int Sorteia(PetName nome, PetAttackManager GG)
    {
        //bool foi = false;
        float roletaDeGolpes = 0;

        for (int i = 0; i < GG.meusGolpes.Count; i++)
        {
            roletaDeGolpes += GG.ProcuraGolpeNaLista(nome, GG.meusGolpes[i].Nome).TaxaDeUso;
        }

        float roleta  = Random.Range(0, roletaDeGolpes);
        float sum     = 0;
        int   retorno = -1;

        //while(!foi){
        for (int i = 0; i < GG.meusGolpes.Count; i++)
        {
            sum += GG.ProcuraGolpeNaLista(nome, GG.meusGolpes[i].Nome).TaxaDeUso;


            if (roleta <= sum && retorno == -1)
            {
                retorno = i;
            }
        }


        //retorno = retorno == -1 ? 0 : retorno;
        //if (GG.meusGolpes[retorno].UltimoUso >= Time.time - GG.meusGolpes[retorno].TempoDeReuso)
        //    for (int i = 0; i < GG.meusGolpes.Count; i++)
        //    {
        //        if (GG.meusGolpes[i].UltimoUso < Time.time - GG.meusGolpes[i].TempoDeReuso)
        //            retorno = i;
        //    }

        //}

        return(retorno == -1 ? 0 : retorno);
    }
Пример #12
0
        public static void HandlePurchase(SqlDatabaseClient MySqlClient, Session Session, CatalogItem Item, string ItemFlags)
        {
            lock (mPurchaseSyncRoot)
            {
                string Color           = "ffffff";
                int    TotalCreditCost = Item.CostCredits;
                int    TotalApCost     = Item.CostActivityPoints;

                if (Session.CharacterInfo.CreditsBalance < TotalCreditCost || Session.CharacterInfo.ActivityPointsBalance
                    < TotalApCost)
                {
                    return;
                }

                string[] PetData = null;

                if (Item.PresetFlags.Length > 0)
                {
                    ItemFlags = Item.PresetFlags;
                }
                else
                {
                    switch (Item.Definition.Behavior)
                    {
                    case ItemBehavior.Pet:

                        PetData = ItemFlags.Split('\n');
                        if (PetData.Length != 3)
                        {
                            return;
                        }

                        string Name = PetData[0];
                        Color = PetData[2];

                        int Race = 0;
                        int.TryParse(PetData[1], out Race);

                        bool RaceOk = false;

                        List <PetRaceData> Races = PetDataManager.GetRaceDataForType(Item.Definition.BehaviorData);

                        foreach (PetRaceData RaceData in Races)
                        {
                            if (RaceData.Data1 == Race)
                            {
                                RaceOk = true;
                                break;
                            }
                        }

                        /// if (PetName.VerifyPetName(Name) != PetNameError.NameOk || Color.ToLower() != "ffffff" || !RaceOk)
                        if (PetName.VerifyPetName(Name) != PetNameError.NameOk || !RaceOk)     // WHY COLOR???
                        {
                            return;
                        }

                        break;

                    case ItemBehavior.PrizeTrophy:

                        if (ItemFlags.Length > 255)
                        {
                            ItemFlags = ItemFlags.Substring(0, 255);
                        }

                        ItemFlags = Session.CharacterInfo.Username + Convert.ToChar(9) + DateTime.Now.Day + "-" +
                                    DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) +
                                    UserInputFilter.FilterString(ItemFlags.Trim(), true);
                        break;

                    default:

                        ItemFlags = string.Empty;
                        break;
                    }
                }

                if (TotalCreditCost > 0)
                {
                    Session.CharacterInfo.UpdateCreditsBalance(MySqlClient, -TotalCreditCost);
                    Session.SendData(CreditsBalanceComposer.Compose(Session.CharacterInfo.CreditsBalance));
                }

                if (TotalApCost > 0)
                {
                    Session.CharacterInfo.UpdateActivityPointsBalance(MySqlClient, -TotalApCost);
                    Session.SendData(ActivityPointsBalanceComposer.Compose(Session.CharacterInfo.ActivityPointsBalance, -TotalApCost));
                }

                Dictionary <int, List <uint> > NewItems = new Dictionary <int, List <uint> >();

                for (int i = 0; i < Item.Amount; i++)
                {
                    switch (Item.Definition.Type)
                    {
                    default:

                        List <Item> GeneratedGenericItems = new List <Item>();
                        double      ExpireTimestamp       = 0;

                        if (Item.Definition.Behavior == ItemBehavior.Rental)
                        {
                            ExpireTimestamp = UnixTimestamp.GetCurrent() + 3600;
                        }

                        GeneratedGenericItems.Add(ItemFactory.CreateItem(MySqlClient, Item.DefinitionId,
                                                                         Session.CharacterId, ItemFlags, ItemFlags, ExpireTimestamp));

                        switch (Item.Definition.Behavior)
                        {
                        case ItemBehavior.Teleporter:

                            Item LinkedItem = ItemFactory.CreateItem(MySqlClient, Item.DefinitionId,
                                                                     Session.CharacterId, GeneratedGenericItems[0].Id.ToString(), string.Empty,
                                                                     ExpireTimestamp);

                            GeneratedGenericItems[0].Flags = LinkedItem.Id.ToString();
                            GeneratedGenericItems[0].SynchronizeDatabase(MySqlClient, true);

                            GeneratedGenericItems.Add(LinkedItem);
                            break;
                        }

                        foreach (Item GeneratedItem in GeneratedGenericItems)
                        {
                            Session.InventoryCache.Add(GeneratedItem);

                            int TabId = GeneratedItem.Definition.Type == ItemType.FloorItem ? 1 : 2;

                            if (!NewItems.ContainsKey(TabId))
                            {
                                NewItems.Add(TabId, new List <uint>());
                            }

                            NewItems[TabId].Add(GeneratedItem.Id);
                        }

                        break;

                    case ItemType.AvatarEffect:

                        AvatarEffect Effect = null;

                        if (Session.AvatarEffectCache.HasEffect((int)Item.Definition.SpriteId))
                        {
                            Effect = Session.AvatarEffectCache.GetEffect((int)Item.Definition.SpriteId);

                            if (Effect != null)
                            {
                                Effect.AddToQuantity();
                            }
                        }
                        else
                        {
                            Effect = AvatarEffectFactory.CreateEffect(MySqlClient, Session.CharacterId, (int)Item.Definition.SpriteId, 3600);
                            Session.AvatarEffectCache.Add(Effect);
                        }

                        if (Effect != null)
                        {
                            Session.SendData(UserEffectAddedComposer.Compose(Effect));
                        }

                        break;

                    case ItemType.Pet:

                        Pet Pet = PetFactory.CreatePet(MySqlClient, Session.CharacterId, Item.Definition.BehaviorData, PetData[0], int.Parse(PetData[1]), Color.ToLower());
                        Session.PetInventoryCache.Add(Pet);

                        Session.SendData(InventoryPetAddedComposer.Compose(Pet));

                        if (!NewItems.ContainsKey(3))
                        {
                            NewItems.Add(3, new List <uint>());
                        }

                        NewItems[3].Add(Pet.Id);

                        break;
                    }
                }

                Session.SendData(CatalogPurchaseResultComposer.Compose(Item));
                Session.SendData(InventoryRefreshComposer.Compose());

                foreach (KeyValuePair <int, List <uint> > NewItemData in NewItems)
                {
                    foreach (uint NewItem in NewItemData.Value)
                    {
                        Session.NewItemsCache.MarkNewItem(MySqlClient, NewItemData.Key, NewItem);
                    }
                }

                if (NewItems.Count > 0)
                {
                    Session.SendData(InventoryNewItemsComposer.Compose(new Dictionary <int, List <uint> >(NewItems)));
                }
            }
        }
Пример #13
0
 public static Sprite GetMiniPet(PetName P)
 {
     return(Resources.Load <Sprite>("miniCriatures/" + P.ToString()));
 }
Пример #14
0
        public static PetBase GetPet(PetName nome)
        {
            PetBase retorno;

            switch (nome)
            {
            case PetName.Xuash:
                retorno = Xuash.Criature;
                break;

            case PetName.Florest:
                retorno = Florest.Criature;
                break;

            case PetName.PolyCharm:
                retorno = PolyCharm.Criature;
                break;

            case PetName.Arpia:
                retorno = Arpia.Criature;
                break;

            //case nomesCriatures.Iruin:
            //    retorno = IruinG2.Criature;
            //break;
            //case nomesCriatures.Urkan:
            //    retorno = UrkanG2.Criature;
            //break;
            //case nomesCriatures.Babaucu:
            //    retorno = MbBabaucu.Criature;
            //break;
            //case nomesCriatures.Serpente:
            //    retorno = MbSerpente.Criature;
            //break;
            //case nomesCriatures.Nessei:
            //    retorno = MbNessei.Criature;
            //    break;
            //case nomesCriatures.Cracler:
            //    retorno = MbCracler.Criature;
            //    break;
            //case nomesCriatures.Flam:
            //    retorno = MbFlam.Criature;
            //    break;
            //case nomesCriatures.Rocketler:
            //    retorno = MbRocketler.Criature;
            //    break;
            //case nomesCriatures.Baratarab:
            //    retorno = MbBaratarab.Criature;
            //    break;
            //case nomesCriatures.Aladegg:
            //    retorno = MbAladegg.Criature;
            //    break;
            //case nomesCriatures.Onarac:
            //    retorno = MbOnarac.Criature;
            //    break;
            //case nomesCriatures.Marak:
            //    retorno = MbMarak.Criature;
            //    break;
            //case nomesCriatures.Steal:
            //    retorno = MbSteal.Criature;
            //    break;
            //case nomesCriatures.Escorpion:
            //    retorno = MbEscorpion.Criature;
            //    break;
            //case nomesCriatures.Cabecu:
            //    retorno = MbCabecu.Criature;
            //    break;
            //case nomesCriatures.DogMour:
            //    retorno = MbDogMour.Criature;
            //    break;
            case PetName.Batler:
                retorno = Batler.Criature;
                break;

            //case nomesCriatures.Wisks:
            //    retorno = Wisks.Criature;
            //    break;
            //case nomesCriatures.Izicuolo:
            //    retorno = Izicuolo.Criature;
            //    break;
            default:
                retorno = new PetBase();
                break;
            }

            return(retorno);
        }
Пример #15
0
 private static void CheckPetName(Session Session, ClientMessage Message)
 {
     Session.SendData(CatalogVerifyPetNameResultComposer.Compose((int)PetName.VerifyPetName(Message.PopString())));
 }