Beispiel #1
0
    public Skill GetSkillsByUniqueId(StylesEnum.CombatTypes combatTypes, string id)
    {
        List <Skill> set = new List <Skill>();

        switch (combatTypes)
        {
        case StylesEnum.CombatTypes.assassin: set = AssassinAbilitySet; break;

        case StylesEnum.CombatTypes.guardian: set = GuaridanAbilitySet; break;

        case StylesEnum.CombatTypes.wizard: set = WizardAbilitySet; break;

        default: set = AllAbilitySet; break;
        }

        foreach (Skill s in set)
        {
            if (id.Equals(s.abilityInformation.uniqueId))
            {
                return(s);
            }
        }

        return(null);
    }
Beispiel #2
0
    public Skill CheckForAbilityAfterLevelUp(StylesEnum.CombatTypes combatType, int newLevel)
    {
        Skill s = ScriptableObject.CreateInstance(typeof(Skill)) as Skill;

        Debug.Log("looking for level: " + newLevel);
        try {
            switch (combatType)
            {
            case StylesEnum.CombatTypes.assassin:
                s = AssassinAbilitySet.Where(skill => skill.abilityInformation.level_required == newLevel).ToList().FirstOrDefault();
                break;

            case StylesEnum.CombatTypes.guardian:
                s = GuaridanAbilitySet.Where(skill => skill.abilityInformation.level_required == newLevel).ToList().FirstOrDefault();
                break;

            case StylesEnum.CombatTypes.wizard:
                s = WizardAbilitySet.Where(skill => skill.abilityInformation.level_required == newLevel).ToList().FirstOrDefault();
                break;

            default: break;
            }
        } catch (System.Exception) {
            Debug.Log("Exception found with CheckForAbilityAfterLevelUp, Exception ignored");
        }
        return(s);
    }
Beispiel #3
0
    public List <Skill> GetAbilitySetForCombatType(StylesEnum.CombatTypes combatType, int characterLevel)
    {
        List <Skill> abilitySet = new List <Skill>();

        switch (combatType)
        {
        case StylesEnum.CombatTypes.assassin:
            PopulateAbilitySetForLevel(ref abilitySet, AssassinAbilitySet, characterLevel);
            break;

        case StylesEnum.CombatTypes.guardian:
            PopulateAbilitySetForLevel(ref abilitySet, GuaridanAbilitySet, characterLevel);
            break;

        case StylesEnum.CombatTypes.wizard:
            PopulateAbilitySetForLevel(ref abilitySet, WizardAbilitySet, characterLevel);
            break;

        default:
            return(null);
        }

        if (abilitySet.Count == 0)
        {
            Debug.LogError("No skills found for " + combatType + " within level range 0 to " + characterLevel);
        }

        return(abilitySet);
    }
Beispiel #4
0
    public static GameObject CreateEnemyFromQRCode(QRCode code, StylesEnum.CombatTypes type, Sprite sprite, bool isBoss)
    {
        // creates a general cube gameobject
        GameObject obj = CreateBushObj(code.username);

        // Add the extra enemy related components
        var enemy = obj.AddComponent <Enemy>();

        enemy.Stats_Component = new Stats(type);
        enemy.AbilitySetSetup();
        enemy.CombatType = type;
        enemy.IsBoss     = isBoss;
        enemy.name       = code.username;
        enemy.code       = code;
        if (!String.IsNullOrEmpty(code.imageURL) && Uri.IsWellFormedUriString(code.imageURL, UriKind.Absolute))
        {
            enemy.GetEnemySpriteFromURL(code.imageURL);
        }
        else
        {
            enemy.FrontSprite = sprite;
        }
        // Setup event trigger for enemy
        obj.AddComponent <EventTrigger>();
        obj.AddComponent <EnemyEventTrigger>();
        obj.AddComponent <ObjectPosition>().SetLatLon(code.GeoPoint);

        return(obj);
    }
Beispiel #5
0
    public static GameObject NewCharacter(string name, StylesEnum.CombatTypes type, Stats stats = null, List <Skill> skillset = null)
    {
        var obj = CreateCubeObject(name);

        if (stats == null)
        {
            stats = new Stats();
            stats.NewStatsSetup(type);
        }

        // Add the script components
        var player = obj.AddComponent <Player>();

        player.name            = name;
        player.Stats_Component = stats;
        player.CombatType      = type;

        if (skillset == null || skillset.Count == 0)
        {
            player.AbilitySetSetup();
        }
        else
        {
            player.AbilitySet = skillset;
        }

        Sprites spritesInstance = Sprites.Instance;

        player.FrontSprite          = spritesInstance.GetCharacterFrontSpriteForCombatType(type);
        player.BackSprite           = spritesInstance.GetCharacterBackSpriteForCombatType(type);
        player.Experience_Component = new Experience(stats);

        return(obj);
    }
Beispiel #6
0
 public Sprite GetCharacterBackSpriteForCombatType(StylesEnum.CombatTypes combatType)
 {
     if (combatType == StylesEnum.CombatTypes.all)
     {
         return(characterBackSprites[0]); // default to the first Sprite in the array
     }
     return(characterBackSprites[(int)combatType]);
 }
Beispiel #7
0
    private static float Modifer(StylesEnum.CombatTypes attacking, StylesEnum.CombatTypes taking)
    {
        var t = TypeTriangle(attacking, taking);
        var c = (Random.Range(1, 10) == 1) ? 1.5f : 1f;
        var r = Random.Range(0.85f, 1f);

        return(t * c * r);
    }
Beispiel #8
0
 public EnemyDataSaver(string _name, StylesEnum.CombatTypes _type, float lat, float lon, Sprite _sprite, bool _isBoss)
 {
     name   = _name;
     type   = _type;
     lat_d  = lat;
     lon_d  = lon;
     sprite = _sprite;
     isBoss = _isBoss;
 }
Beispiel #9
0
    private static float TypeTriangle(StylesEnum.CombatTypes attacking, StylesEnum.CombatTypes taking)
    {
        // if they are the same type just return 1
        // else check to see what the effectiveType is, and if the effective type is the same type as taking then return 1.5
        // else it's attacking the weakest in-effective type return .5f
        if (attacking == taking)
        {
            return(1);
        }

        var effectiveType = StylesEnum.CombatTriangle [attacking];

        if (effectiveType == taking)
        {
            return(1.5f);
        }
        else
        {
            return(.5f);
        }
    }
Beispiel #10
0
    public static GameObject CreateEnemy(string name, StylesEnum.CombatTypes type, GeoPoint geoPoint, Sprite sprite, bool isBoss)
    {
        // creates a general cube gameobject
        GameObject obj = CreateBushObj(name);

        // Add the extra enemy related components
        var enemy = obj.AddComponent <Enemy>();

        enemy.name            = name;
        enemy.Stats_Component = new Stats(type);
        enemy.AbilitySetSetup();
        enemy.FrontSprite = sprite;
        enemy.CombatType  = type;
        enemy.IsBoss      = isBoss;

        // Setup event trigger for enemy
        obj.AddComponent <EventTrigger>();
        obj.AddComponent <EnemyEventTrigger>();
        obj.AddComponent <ObjectPosition>().SetLatLon(geoPoint);

        return(obj);
    }
    public void NewStatsSetup(StylesEnum.CombatTypes type)
    {
        combattype_private = type;
        var   hp = StylesEnum.CombatTypesBaseHp[type];
        float strength, speed, defense;

        switch (type)
        {
        case StylesEnum.CombatTypes.assassin:
            strength = StylesEnum.AssassinBaseStats["strength"];
            speed    = StylesEnum.AssassinBaseStats["speed"];
            defense  = StylesEnum.AssassinBaseStats["defense"];
            break;

        case StylesEnum.CombatTypes.guardian:
            strength = StylesEnum.GuardianBaseStats["strength"];
            speed    = StylesEnum.GuardianBaseStats["speed"];
            defense  = StylesEnum.GuardianBaseStats["defense"];
            break;

        default:
            strength = StylesEnum.WizardBaseStats["strength"];
            speed    = StylesEnum.WizardBaseStats["speed"];
            defense  = StylesEnum.WizardBaseStats["defense"];
            break;
        }

        hp_private        = hp;
        max_hp_private    = hp;
        currentxp_private = 0;
        level_private     = 1;
        strength_private  = strength;
        speed_private     = speed;
        defense_private   = defense;
        isDead            = false;
    }
 public Stats(StylesEnum.CombatTypes type)
 {
     NewStatsSetup(type);
 }