Exemplo n.º 1
0
    public UnitDescription ToDescription()
    {
        Enum.TryParse(unitRace, out Race race);
        RaceStat raceStatFound = null;

        foreach (RaceStat raceStat in UnitGenerator.GetAllRaces())
        {
            if (raceStat.race == race)
            {
                raceStatFound = raceStat;
            }
        }

        Enum.TryParse(unitClass, out Class @class);
        ClassStat classStatFound = null;

        foreach (ClassStat classStat in UnitGenerator.GetAllClasses())
        {
            if (classStat.clas == @class)
            {
                classStatFound = classStat;
            }
        }

        return(new UnitDescription(name, raceStatFound, classStatFound, abilityName, Unit.allyTag, id, experience, level, gems));
    }
Exemplo n.º 2
0
 public Class(User account) : base(account)
 {
     AssaultStats = new ClassStat(account, "assault");
     MedicStats   = new ClassStat(account, "medic");
     PilotStats   = new ClassStat(account, "pilot");
     ReconStats   = new ClassStat(account, "recon");
     SupportStats = new ClassStat(account, "support");
     TankerStats  = new ClassStat(account, "tanker");
 }
Exemplo n.º 3
0
    public static UnitDescription GenerateUnit(string unitTag)
    {
        RaceStat  unitRace    = GetRandomRace(unitTag);
        ClassStat unitClass   = GetRandomClass(unitRace.race);
        string    name        = GetRandomName(unitRace);
        string    abilityName = GetRandomAbilityName(unitClass);

        return(new UnitDescription(name, unitRace, unitClass, abilityName, unitTag));
    }
Exemplo n.º 4
0
 public UnitDescription(Unit unit)
 {
     sprite      = unit.GetSprite();
     unitRace    = unit.raceStats;
     unitClass   = unit.classStat;
     abilityName = unit.GetAbilityName();
     unitName    = unit.GetName();
     id          = unit.id;
     level       = unit.Level;
     gems        = unit.GetGems();
 }
Exemplo n.º 5
0
    public static string GetRandomAbilityName(ClassStat classStat)
    {
        if (classStat.abilities.Length > 0)
        {
            int randomAbilityIndex = Random.Range(0, classStat.abilities.Length);
            return(classStat.abilities[randomAbilityIndex]);
        }

        else
        {
            return(null);
        }
    }
Exemplo n.º 6
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ClassStat = await _context.ClassStats.FirstOrDefaultAsync(m => m.ClassID == id);

            if (ClassStat == null)
            {
                return(NotFound());
            }
            return(Page());
        }
Exemplo n.º 7
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ClassStat = await _context.ClassStats.FindAsync(id);

            if (ClassStat != null)
            {
                _context.ClassStats.Remove(ClassStat);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Exemplo n.º 8
0
 /// <summary>
 /// Creates a new UnitDescription and attached a new id to it
 /// </summary>
 /// <param name="name"></param>
 /// <param name="unitRace"></param>
 /// <param name="unitClass"></param>
 /// <param name="abilityName"></param>
 public UnitDescription(string name, RaceStat unitRace, ClassStat unitClass, string abilityName, string unitTag, uint?id = null, uint experience = 0, uint level = 1, string[] gems = null)
 {
     unitName         = name;
     this.unitRace    = unitRace;
     this.unitClass   = unitClass;
     this.abilityName = abilityName;
     sprite           = unitRace.getSprite(unitClass.clas);
     if (id == null)
     {
         this.id = GetNewId();
     }
     else
     {
         this.id = (uint)id;
     }
     this.experience = experience;
     this.gems       = gems;
     this.level      = level;
 }
Exemplo n.º 9
0
        public static void Initialize(PlayerContext context)
        {
            context.Database.EnsureCreated();

            // Look for any Users.
            if (context.UserInfos.Any())
            {
                return;   // DB has been seeded
            }

            var users = new UserInfo[]
            {
                new UserInfo {
                    UserID = 0, UserName = "******", Password = "******", Email = "*****@*****.**"
                }
            };

            context.UserInfos.AddRange(users);
            context.SaveChanges();

            var characterstat = new CharacterStat[]
            {
                new CharacterStat {
                    CharacterId = 0, UserId = 0, GuildId = 0, Level = 160, JobLevel = 80, Class = "Genetic", Strength = 50, Agility = 120, Vitality = 159, Intelligence = 50, Dexterity = 100, Luck = 100, HealthPoints = 3500000, GoldMedals = 2500, GuildContribution = 1800000
                }
            };

            context.CharacterStats.AddRange(characterstat);
            context.SaveChanges();

            var guild = new Guild[]
            {
                new Guild {
                    GuildId = 0, GuildName = "WorstBehavior"
                }
            };

            context.Guilds.AddRange(guild);
            context.SaveChanges();

            var adventurebook = new AdventureBook[]
            {
                new AdventureBook {
                    CharacterId = 0, MaximumHp = 38000, PhysicalAttack = 1400, MagicAttack = 800, GachaDeposit = 14
                }
            };

            context.AdventureBooks.AddRange(adventurebook);
            context.SaveChanges();


            var classstat = new ClassStat[]
            {
                new ClassStat {
                    ClassID = 0
                }
            };

            context.ClassStats.AddRange(classstat);
            context.SaveChanges();

            var goddessprayer = new GoddessPrayer[]
            {
                new GoddessPrayer {
                    CharacterId = 0, MaximumHp = 200, PhysicalAttack = 200, MagicAttack = 200, PhysicalDefense = 200, MagicalDefense = 200
                }
            };

            context.GoddessPrayers.AddRange(goddessprayer);
            context.SaveChanges();


            var statusresistance = new StatusResistance[]
            {
                new StatusResistance {
                    CharacterId = 0, FearResistance = 98, FreezeResistance = 40, PetrifyResistance = 40, SleepResistance = 100, StunResistance = 114
                }
            };

            context.StatusResistances.AddRange(statusresistance);
            context.SaveChanges();

            var equipment = new Equipment[]
            {
                new Equipment {
                    CharacterId        = 0,
                    WeaponName         = "Hurricane Fury", WeaponRefine = 15, WeaponCard1 = "Spashire Star Card", WeaponCard2 = "Mega Ant Egg Card",
                    ShieldName         = "Stone Buckler", ShieldRefine = 8, ShieldCard = "Marc Card",
                    ArmorName          = "Comet Armor", ArmorRefine = 15, ArmorCard = "Ghostring Card",
                    ManteauName        = "Diabolus Manteau", ManteauRefine = 10, ManteauCard = "Jakk Card",
                    LeftAccessoryName  = "Safety Ring", LeftAccessoryRefine = 8, LeftAccessoryCard = "Fisherman Card",
                    RightAccessoryName = "Safety Ring", RightAccessoryRefine = 8, RightAccessoryCard = "Fisherman Card",
                    HeadgearName       = "Sheep on Head", HeadgearRefine = 4, HeadgearCard = "Nightmare Card",
                    FaceName           = "Goblin Leader Mask", FaceRefine = 10,
                    MouthName          = "Pipe", MouthRefine = 10,
                    BackName           = "Midgard Backpack", BackRefine = 8,
                    TailName           = "Midgard Fairy", TailRefine = 10
                }
            };

            context.Equipments.AddRange(equipment);
            context.SaveChanges();
        }
    public void UpdateDescription()
    {
        if (actualSlot == null)
        {
            UnitName.text       = "";
            UnitStats.text      = "";
            UnitExperience.text = "";
            return;
        }

        currentDescription = actualSlot.GetCurrentUnitDescription();

        SetUnitName(currentDescription.GetUnitName());
        SetUnitExperience(currentDescription.GetExperience());
        SetUnitLevel(currentDescription.GetLevel());
        ClassStat classe = currentDescription.GetClass();
        RaceStat  race   = currentDescription.GetRace();


        //destroy previously displayed slots
        foreach (GameObject slot in gemSlots)
        {
            Destroy(slot);
        }

        string[] gems = currentDescription.GetGems();
        gemSlots    = new List <GameObject>();
        currentGems = new List <Gem>();

        if (ResetGemsButton)
        {
            if (GameManager.instance.gamestate == GameManager.GameState.Placement ||
                (GameManager.instance.gamestate == GameManager.GameState.Shopping ||
                 GameManager.instance.gamestate == GameManager.GameState.Resolution) &&
                actualSlot.GetSlotType() == InventorySlot.SlotType.Inventory)
            {
                GenerateSlots(gems);
                ResetGemsButton.gameObject.SetActive(true);
            }

            else
            {
                ResetGemsButton.gameObject.SetActive(false);
            }
        }

        uint  level            = currentDescription.GetLevel();
        float damage           = classe.damage + race.damage + 1 * (level - 1);
        float maxLife          = classe.maxLife + race.maxLife + 10 * (int)(level - 1);
        float attackSpeed      = classe.attackSpeed + race.attackSpeed + 0.05f * (level - 1);
        float moveSpeed        = classe.moveSpeed + race.moveSpeed;
        float armor            = classe.armor + race.armor + 0.05f * (level - 1);
        float power            = 1 + 0.05f * (level - 1);
        int   range            = classe.range;
        float incrementStamina = classe.incrementStamina;

        if (currentGems.Count > 0)
        {
            foreach (Gem gem in currentGems)
            {
                if (gem.GetStatModified() == Gem.StatModified.None)
                {
                    gem.InitializeStatModified();
                }

                switch (gem.GetStatModified())
                {
                case Gem.StatModified.Damage:
                    damage = gem.InitGemEffect(damage);
                    break;

                case Gem.StatModified.Health:
                    maxLife = gem.InitGemEffect(maxLife);
                    break;

                case Gem.StatModified.AttackSpeed:
                    attackSpeed = gem.InitGemEffect(attackSpeed);
                    break;

                case Gem.StatModified.Armor:
                    armor = gem.InitGemEffect(armor);
                    break;

                case Gem.StatModified.MovementSpeed:
                    moveSpeed = gem.InitGemEffect(moveSpeed);
                    break;

                case Gem.StatModified.Power:
                    power = gem.InitGemEffect(power);
                    break;
                }
            }
        }

        //get ability name and add space before every capital letter
        string        abilityName           = currentDescription.GetAbilityName();
        StringBuilder abilityNameWithSpaces = new StringBuilder(abilityName.Length * 2);

        abilityNameWithSpaces.Append(abilityName[0]);
        for (int i = 1; i < abilityName.Length; i++)
        {
            if (char.IsUpper(abilityName[i]) && abilityName[i - 1] != ' ')
            {
                abilityNameWithSpaces.Append(' ');
            }
            abilityNameWithSpaces.Append(abilityName[i]);
        }


        string stats =
            "Classe : " + classe.name + "\n" +
            "Race : " + race.name + "\n" +
            "Capacité : " + abilityNameWithSpaces + "\n" +
            "Stamina générée : " + incrementStamina + "\n" +
            "PV Max : " + maxLife + "\n" +
            "Dégâts : " + Mathf.Round(damage * 100f) / 100f + "\n" +
            "Vitesse d'attaque : " + Mathf.Round(attackSpeed * 100f) / 100f + "\n" +
            "Vitesse de déplacement : " + Mathf.Round(moveSpeed * 100f) / 100f + "\n" +
            "Armor : " + Mathf.Round(armor * 100f) / 100f + "\n" +
            "Puissance : " + Mathf.Round(power * 100f) / 100f + "\n" +
            "Portée : " + range + "\n";

        SetUnitStats(stats);
    }