Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Strive: Conquest

A successor to first Strive For Power game, currently at alpha stage · By Strive4Power

Messing around with class creation

A topic by Sweet_Dreams created Dec 01, 2019 Views: 813 Replies: 2
Viewing posts 1 to 3

I have tried creating custom classes, and have a few observations.


1- For now, it seems that any new class would require modifications of classes.gd, skills.gd, localization>en>main.gd (for descriptions) and some image file; every time a new version is installed. Is there, or will there be, a more convenient way to add custom classes?

2- There is currently no way to check for # number of professions of a type, for example requiring having at least 2 social-type professions, or no caster-type.

3- The value is_short_stack cannot be checked as false. You can only require it to be true.

4- Is there a way to add limitations to a class? For example, a class that sets wits to 1, decreases the maximum charm, or sets critical hit rate to always be 0.

5- Current classes don't use tags. Are they for later, or can they be used for custom class requirements?

1. Yes, once we implement a mod system
2. Yes, you'd have to implement custom requirment checks
3. Will need adjustments to requirement checks.
4. Not in current stat system but perhaps we will add it eventually
5. Probably for later.

(2 edits)

After some work, I managed to get a few custom classes working. They're mostly untested, but do not return an error. They have no name or description. Use your imagination.

Some things I've noticed :

Requiring one of class and one of race use different syntaxes.

You CAN require a class to have at most at certain stat, with less than or equal.

Class stat changes can be negative.

I could not find how to make a class require a sexual trait.


I've copied the classes I made below if anyone is interested. To use them, copy them at the end of /src/classes.gd , before the final bracket}.


-----

    barbarian = {
        code = 'barbarian',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsclasses/Fighter.png"),
        tags = [],
        categories = ['combat'],
        showupreqs = [{code = 'has_profession', value = 'apprentice', check = false}],    #    Cannot be shortstack or caster-type
        reqs = [{code = 'stat', type = 'physics_factor', operant = 'gte', value = 3}],
        statchanges = {physics_bonus = 5, hpmax = 15, hitrate = 5},
        traits = [],
        skills = [],
        combatskills = [],
    },
    rain_dancer = {
        code = 'rain_dancer',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsclasses/dancer.png"),
        tags = [],
        categories = ['social','combat'],
        showupreqs = [{code = 'one_of_races', value = ['Scylla','Nereid','Dryad','Slime']},{code = 'has_profession', value = 'burning_soul', check = false}],
        reqs = [{code = 'has_profession', value = 'dancer', check = true},{code = 'one_of_races', value = ['Scylla','Nereid','Dryad','Slime']},{code = 'has_profession', value = 'burning_soul', check = false}],
        statchanges = {hitrate = 10, speed = 5, evasion = 15, resistwater = 25},
        traits = [],
        skills = [],
        combatskills = ['blizzard','water_atk'],
    },
    airborne_fighter = {
        code = 'airborne_fighter',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsclasses/valkyry.png"),
        tags = [],
        categories = ['combat'],
        showupreqs = [{code = 'one_of_races', value = ['Fairy','Demon','Seraph','Dragonkin','Harpy']}],
        reqs = [{code = 'one_of_races', value = ['Fairy','Demon','Seraph','Dragonkin','Harpy']},{code = 'stat', type = 'physics', operant = 'gte', value = 25},{code = 'has_profession', value = 'rogue', check = true}],
        statchanges = {physics_bonus = 5, speed = 10, evasion = 5, critchance = 2, resistair = 25},
        traits = [],
        skills = [],
        combatskills = ['lightning','air_cutter'],
    },
    burning_soul = {
        code = 'burning_soul',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsclasses/Dragon_Knight.png"),
        tags = [],
        categories = ['combat'],
        showupreqs = [{code = 'one_of_races', value = ['Kobold','Demon','Dragonkin']},{code = 'has_profession', value = 'rain_dancer', check = false}],
        reqs = [{code = 'one_of_races', value = ['Kobold','Demon','Dragonkin']},{code = 'stat', type = 'timid_factor', operant = 'lte', value = 3},{code = 'has_profession', value = 'rain_dancer', check = false}],
        statchanges = {hpmax = 5, physics_bonus = 5, resistfire = 25, speed = 3},
        traits = [],
        skills = ['fear'],
        combatskills = ['fire_cleave','fire_burst','firearr'],
    },
    earthshaper = {
        code = 'earthshaper',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsclasses/foreman.png"),
        tags = [],
        categories = ['labor'],
        showupreqs = [{code = 'one_of_races', value = ['Gnome','Dwarf','Taurus','Centaur']}],
        reqs = [{code = 'one_of_races', value = ['Gnome','Dwarf','Taurus','Centaur']},{code = 'stat', type = 'physics_factor', operant = 'gte', value = 2},{code = 'stat', type = 'wits', operant = 'gte', value = 10}],
        statchanges = {physics_bonus = 10, resistearth = 25, armor = 10, hpmax = 10},
        traits = [],
        skills = ['hardwork'],
        combatskills = ['earth_atk'],
    },
    devoted = {
        code = 'devoted',
        name = '',
        descript = '',
        icon = load("res://assets/images/iconsskills/Reward_with_sex 3.png"),
        tags = [],
        categories = ['social','sexual'],
        showupreqs = [],
        reqs = [{code = 'stat', type = 'sexuals', operant = 'gte', value = 40}],
        statchanges = {sexuals_factor = 1, charm_factor = 1, wits_factor = -1},
        traits = [],
        skills = ['rewardsex'],
        combatskills = ['protect'],
    },