Blobbus System Mechanics Notes
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: [?], [?], [?/[?]]) // Magic (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)
[Healing Amount] = ? // 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]