Example #1
0
    public void CreateCharacter(string json)
    {
        CharacterJson characterJson = JsonUtility.FromJson <CharacterJson>(json);
        GameObject    character     = Instantiate(CharacterPrefab);

        character.GetComponent <CharacterController>().InitialiseValues(characterJson);
    }
Example #2
0
        private async Task FillCharacter(CharacterJson characterJson)
        {
            await _dbManager.DeleteByBlizzardId <Character>(characterJson.Id).ConfigureAwait(false);

            CharacterJson result = await _blizzardApiReader.GetAsync <CharacterJson>($"profile/wow/character/{characterJson.Realm.Slug}/{characterJson.Name.ToLower()}", Namespace.Profile).ConfigureAwait(false);

            bool isValid;

            if (result.ResultCode != HttpStatusCode.OK)
            {
                await _dbManager.Log(new LogEvent
                {
                    Message     = "Unabled to reach BlizzardAPI",
                    Description = $"Return code {result.ResultCode}",
                    Collection  = "Character",
                    BlizzardId  = characterJson.Id,
                    KeyData     = $"{characterJson.Name}-{characterJson.Realm.Slug}",
                    Severity    = LogLevel.Warning
                }).ConfigureAwait(false);

                characterJson.ResultCode = result.ResultCode;
                result  = characterJson;
                isValid = true;
            }
            else
            {
                CharacterStatusJson characterStatutJson = await _blizzardApiReader.GetAsync <CharacterStatusJson>($"profile/wow/character/{characterJson.Realm.Slug}/{characterJson.Name.ToLower()}/status", Namespace.Profile).ConfigureAwait(false);

                isValid = characterStatutJson.ResultCode == HttpStatusCode.OK && characterStatutJson.IsValid && characterStatutJson.Id == characterJson.Id;
                if (isValid)
                {
                    result.Media = await _blizzardApiReader.GetAsync <MediaJson>($"profile/wow/character/{characterJson.Realm.Slug}/{characterJson.Name.ToLower()}/character-media", Namespace.Profile).ConfigureAwait(false);
                }
                else
                {
                    await _dbManager.Log(new LogEvent
                    {
                        Message     = "Character Invalid",
                        Description = $"Blizzard API return invalid status (character may be innactive or deleted)",
                        Collection  = "Character",
                        BlizzardId  = characterJson.Id,
                        KeyData     = $"{characterJson.Name}-{characterJson.Realm.Slug}",
                        Severity    = LogLevel.Warning
                    }).ConfigureAwait(false);

                    await _dbManager.DeleteByBlizzardId <Character>(characterJson.Id).ConfigureAwait(false);
                }
            }
            if (isValid)
            {
                await _dbManager.Insert(new Character(result)).ConfigureAwait(false);
            }
        }
Example #3
0
 public static CharacterEntity BuildEntityFromJsonObject(CharacterJson characterJson)
 {
     CharacterType GetTypeFromString(string typeString)
     {
         return(typeString switch
         {
             "Political Leader" => CharacterType.PoliticalLeader,
             "Military Leader" => CharacterType.MilitaryLeader,
             "Pilot" => CharacterType.Pilot,
             "Support" => CharacterType.Support,
             "Cylon Leader" => CharacterType.CylonLeader,
             _ => CharacterType.Support
         });
     }
    public PlayerCharacter(CharacterJson json, int targetLevel)
    {
        info = new UnitJson
        {
            id            = json.id,
            name          = json.name,
            description   = json.description,
            race          = json.race,
            type          = json.type,
            learnedSkills = json.learnedSkills,
            totalSkills   = json.totalSkills,
            modelImgPath  = json.modelImgPath,
            faceImgPath   = json.faceImgPath,
            stats         = new UnitStatJson()
        };

        weaponTypes = json.weaponTypes;

        //if (!String.IsNullOrEmpty(json.weaponID))
        //{
        weapon = new PlayerWeapon(json.weaponID);
        //}

        // (json.armorIDs.Length > 0)
        //{
        armors = new List <PlayerArmor>();
        for (int i = 0; i < json.armorIDs.Length; i++)
        {
            armors.Add(new PlayerArmor(json.armorIDs[i]));
        }
        //}

        SetStatByLevel(targetLevel, json);

        bodyPower = 0;

        availableAttributes  = 0;
        availableSkillPoints = 0;

        CalculateBattleStat();
        RefreshStatus();
    }
 public void SetStatByLevel(int lvl, CharacterJson character)
 {
     if (lvl > 0)
     {
         level                   = lvl;
         experience              = 0;
         info.stats.hp           = character.stats.hp + (character.growthStat.hp * (lvl - 1));
         info.stats.mp           = character.stats.mp + (character.growthStat.mp * (lvl - 1));
         info.stats.strength     = character.stats.strength + (character.growthStat.strength * (lvl - 1));
         info.stats.dexterity    = character.stats.dexterity + (character.growthStat.dexterity * (lvl - 1));
         info.stats.intelligence = character.stats.intelligence + (character.growthStat.intelligence * (lvl - 1));
         info.stats.vitality     = character.stats.vitality + (character.growthStat.vitality * (lvl - 1));
         info.stats.wisdom       = character.stats.wisdom + (character.growthStat.wisdom * (lvl - 1));
         info.stats.endurance    = character.stats.endurance + (character.growthStat.endurance * (lvl - 1));
     }
     info.stats.fireRes      = character.stats.fireRes;
     info.stats.lightningRes = character.stats.lightningRes;
     info.stats.iceRes       = character.stats.iceRes;
     info.stats.holyRes      = character.stats.holyRes;
     info.stats.darkRes      = character.stats.darkRes;
 }
Example #6
0
        private async Task FillRoster(GuildRosterJson guildRosterJson)
        {
            List <Task> tasks = new List <Task>();

            foreach (GuildMemberJson memberJson in guildRosterJson.Members)
            {
                if (memberJson.Member != null && memberJson.Member.Realm != null)
                {
                    CharacterJson characterJson = new CharacterJson
                    {
                        Id    = memberJson.Member.Id,
                        Name  = memberJson.Member.Name,
                        Realm = new RealmJson {
                            Slug = memberJson.Member.Realm.Slug
                        }
                    };
                    tasks.Add(FillCharacter(characterJson));
                }
            }
            await Task.WhenAll(tasks).ConfigureAwait(false);
        }
Example #7
0
    public static void LoadData(
        out Dictionary <string, Character> characterDict,
        out Character[] characterArray,
        out Dictionary <string, Dialogue> dialogues)
    {
        dialogues = LoadDialogues();

        string           characterFileContent = GetFileContent(Application.dataPath + CHARACTERS_PATH);
        int              currentPosition = 1;
        string           characterKey, characterJsonEntry;
        List <Character> charactersList = new List <Character>();

        characterDict = new Dictionary <string, Character>();
        while (TryGetNextEntry(characterFileContent, ref currentPosition, out characterKey, out characterJsonEntry))
        {
            CharacterJson characterRaw = JsonUtility.FromJson <CharacterJson>(characterJsonEntry);

            Character character = new Character();
            character.Name             = characterKey;
            character.StartingDialogue = dialogues[characterRaw.StartingDialogue];
            character.CurrentDialogue  = character.StartingDialogue;

            if (characterKey != "AI")
            {
                character.LikedCharacter    = characterRaw.LikedCharacter == null ? string.Empty : characterRaw.LikedCharacter;
                character.DislikedCharacter = characterRaw.DislikedCharacter == null ? string.Empty : characterRaw.DislikedCharacter;
                character.LikedMapSide      = characterRaw.LikedMapSide == null ? MapSide.None : (MapSide)Enum.Parse(typeof(MapSide), characterRaw.LikedMapSide);
                character.DislikedMapSide   = characterRaw.DislikedMapSide == null ? MapSide.None : (MapSide)Enum.Parse(typeof(MapSide), characterRaw.DislikedMapSide);
                character.DiscoveredHints   = new HashSet <string>();
                character.HappyEnding       = characterRaw.HappyEnding;
                character.SadEnding         = characterRaw.SadEnding;
                charactersList.Add(character);
            }
            characterDict.Add(characterKey, character);
        }

        characterArray = charactersList.ToArray();
    }
 public void AddCharacter(CharacterJson character, int level)
 {
     Characters.Add(new PlayerCharacter(character, level));
 }
Example #9
0
     protected void Load(CharacterJson characterJson)
     {
         if (CheckJson(characterJson))
         {
             BlizzardId = characterJson.Id;
             Name       = characterJson.Name;
             if (characterJson.Faction != null)
             {
                 Faction = characterJson.Faction.Type.ParseCode <Faction>();
             }
             if (characterJson.Gender != null)
             {
                 Gender = characterJson.Gender.Type.ParseCode <Gender>();
             }
             if (characterJson.Class != null)
             {
                 ClassID = characterJson.Class.Id;
             }
             if (characterJson.Race != null)
             {
                 Race = new Race {
                     BlizzardId = characterJson.Race.Id
                 }
             }
             ;
             Level = characterJson.Level;
             if (characterJson.Media != null)
             {
                 if (characterJson.Media.Assets != null)
                 {
                     if (characterJson.Media.Assets.Any(x => x.Key == "avatar"))
                     {
                         Avatar = new Uri(characterJson.Media.Assets.Find(x => x.Key == "avatar").Value);
                     }
                     if (characterJson.Media.Assets.Any(x => x.Key == "inset"))
                     {
                         Inset = new Uri(characterJson.Media.Assets.Find(x => x.Key == "inset").Value);
                     }
                     if (characterJson.Media.Assets.Any(x => x.Key == "main"))
                     {
                         Main = new Uri(characterJson.Media.Assets.Find(x => x.Key == "main").Value);
                     }
                     if (characterJson.Media.Assets.Any(x => x.Key == "main-raw"))
                     {
                         MainRaw = new Uri(characterJson.Media.Assets.Find(x => x.Key == "main-raw").Value);
                     }
                 }
                 else
                 {
                     if (!string.IsNullOrEmpty(characterJson.Media.AvatarUrl))
                     {
                         Avatar = new Uri(characterJson.Media.AvatarUrl);
                     }
                     if (!string.IsNullOrEmpty(characterJson.Media.InsetUrl))
                     {
                         Inset = new Uri(characterJson.Media.InsetUrl);
                     }
                     if (!string.IsNullOrEmpty(characterJson.Media.RenderUrl))
                     {
                         Main = new Uri(characterJson.Media.RenderUrl);
                     }
                 }
             }
         }
     }
 }
Example #10
0
 public Character(CharacterJson characterJson) : this()
 {
     Load(characterJson);
 }