Blobbus System Mechanics Notes

From CoIWiki
Jump to: navigation, search

TODO: Add Character Generation Mechanics
TODO: Finalize Elemental Effects and add in
TODO: Finalize Magic

[Roll 1dX: Sides]:
    0.0 <= [Random Val] <= 1.0

    [Die] = Ceil( [Sides] * [Random Val] )
    if ( [Die] < 1 ) [Die] = 1

    Return [Die]

[Roll XdY+Z: Count, Sides, Modifier]
    [Result] = 0
    for ([Counter] = 0; [Counter] < [Count]; [Count] = [Count] + 1) {
        [Result] = [Result] + [Roll 1dX: [Sides]]
    }
    [Result] = [Result] + [Modifier]

    Return [Result]

[Points Convert: Points]
    [Count] = ( ([Points]-1) / 6 ) + 1
    [Sides] = 12
    [Modifier] = ([Points]-1) % 6

    Return [Count],[Sides],[Modifier]

[Dice Check: Stat, Skill, Subskill]
    [Total] = ([Stat]+[Skill]+[Subskill])
    [Level] = Floor( [Total]/3 )
    [Fraction] = ( [Total] % 3 )

    [Result] = [Roll XdY+Z: [Points Convert: Total]]

    if ( [Fraction] >= 0 ) {
        // Rolls a die with [Fraction]+1 sides and a -1 modifier and adds it to the result
        [Result] = [Result] + [Roll XdY+1: 1, [Fraction]+1, -1 ]
    }

    Return [Result]

Attack To-Hit Roll:
    [Attack Check] = [Dice Check: [Dexterity], [Brawl], [Brawl/[Brawl Attack]])    // Brawl
    [Attack Check] = [Dice Check: [Strength], [Melee], [Melee/[Weapon]])        // Melee
    [Attack Check] = [Dice Check: [Insight], [Ranged], [Ranged/[Weapon]])        // Ranged
    [Attack Check] = [Dice Check: [Attunement], [Arcana], [Spell/[Spell]])        // Magic Damage (Unfinished)
    [Attack Check] = [Dice Check: [Resilience], [Resistance], [Spell/[Spell]])        // Magic Healing (Unfinished)
    [Attack Check] = [Dice Check: [Acuity], [Channeling], [Spell/[Spell]])        // Magic Status (Unfinished)

Defense To-Hit Roll:

    [Defense Check] = [Dice Check: [Dexterity], [Agility], [Agility/Dodge])        // Dodge
    [Defense Check] = [Dice Check: [Strength], [Athletics], [Athletics/Parry])    // Parry
    [Defense Check] = [Dice Check: [Stamina], [Endurance], [Endurance/Block])    // Block
    [Defense Check] = [Dice Check: [Attunement], [Resistance], [Spell Defense/[Spell Class]])    // Magic Absorb (Unfinished)
    [Defense Check] = [Dice Check: [Acuity], [Arcana], [Spell Defense/[Spell Class]])    // Magic Counterspell (Unfinished)
    [Defense Check] = [Dice Check: [Resilience], [Abjuration], [Spell Defense/[Spell Class]])    // Magic Redirect (Unfinished)

Attack Damage Roll
    0.0 <= [Random Val] <= 1.0

    // [Brawl Attack ATK] taken from brawl attack, or generic brawl boosting ability (Unfinished)
    // [Weapon Attack ATK] taken from weapon's attack
    // [Magic Attack MATK] taken from the magic attack spell (Unfinished)
    // [Magic Healing MHEAL] taken from the magic healing spell (Unfinished)
    [PATK] = Floor( ([Strength]+[Dexterity]) * 1.5 ) + [Brawl Attack ATK]        // Brawl
    [PATK] = Floor( ([Strength]+[Dexterity]) * 1.5 ) + [Weapon Attack ATK]        // Melee
    [RATK] = Floor( ([Insight]+[Intelligance]) * 1.5 ) + [Weapon Attack ATK]    // Ranged
    [MATK] = Floor( ([Attunement]+[Acuity]) * 1.0 ) + [Magic Attack MATK]        // Magic Damage (Unfinished)
    [MHEAL] = Floor( ([Acuity]+[Anumis]) * 1.0 ) + [Magic Healing MHEAL]        // Magic Healing (Unfinished)
    ? = ?                                        // Magic Status Effect (Unfinished)

    [Attack Damage] = [PATK] + ( ([PATK]/2) * [Random Val] ) - ([PATK]/4)        // Brawl
    [Attack Damage] = [PATK] + ( ([PATK]/2) * [Random Val] ) - ([PATK]/4)        // Melee
    [Attack Damage] = [RATK] + ( ([RATK]/2) * [Random Val] ) - ([RATK]/4)        // Ranged
    [Attack Damage] = [MATK] + ( ([MATK]/2) * [Random Val] ) - ([MATK]/4)        // Magic Damage (Unfinished)
    [Healing Amount] = [MHEAL] + ( ([MHEAL]/2) * [Random Val] ) - ([MHEAL]/4)        // Magic Healing (Unfinished)
    [Status Effect Duration] = ?                            // Magic Status Effect (Unfinished)

Defense Soak Roll
    [DEF] = Floor( ([Strength]+[Stamina]) / 1.5 )
    [MDEF] = Floor( ([Resilience]+[Willpower]) / 1.5 )

    // [Armor DEF] summed for all armor items and status buffs
    [Damage Soak] = [DEF] + [Armor DEF]
    [Damage Soak] = [MDEF] + [Armor DEF]

Final Calculation
    if ([Attack Check] > [Defense Check]) {
        [Damage] = Floor( [Attack Damage] * ([Defense Soak] / 100) )
        If ([Damage] < 1) [Damage] = 1
    } else {
        [Damage] = 0
    }

Maximum HP:
    [Base] = 100
    [Increase] = 3
    [Multiplier] = 10
    [Stat] = [Stamina]

    [Count],[Sides],[Modifier] = [Points Convert: [Stat]]
    [Base Value] = [Base] + ([Stat]*[Mult])
    [Stat Value] = ([Count]*0.01) + ([Modifier]*(0.01/6))
    [Raise Value] = [Raise] * [Multiplier]

    [Maximum HP] = Floor( [Base Value] * (1+([Stat Value]*[Level])) ) + [Raise Value]

Maximum MP:
    [Base] = 10
    [Increase] = 2
    [Multiplier] = 3
    [Stat] = [Stamina]

    [Count],[Sides],[Modifier] = [Points Convert: [Stat]]
    [Base Value] = [Base] + ([Stat]*[Mult])
    [Stat Value] = ([Count]*0.01) + ([Modifier]*(0.01/6))
    [Raise Value] = [Raise] * [Multiplier]

    [Maximum MP] = Floor( [Base Value] * (1+([Stat Value]*[Level])) ) + [Raise Value]