| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | other/attrib_stats.txt | 155 | ||||
| -rw-r--r-- | other/db_bounty.txt | 18 | ||||
| -rw-r--r-- | other/erl_module_template.erl | 17 | ||||
| -rw-r--r-- | other/luck.txt | 97 | ||||
| -rw-r--r-- | other/magic.txt | 75 | ||||
| -rw-r--r-- | other/skills.txt | 92 | 
6 files changed, 0 insertions, 454 deletions
| diff --git a/other/attrib_stats.txt b/other/attrib_stats.txt deleted file mode 100644 index cc06824..0000000 --- a/other/attrib_stats.txt +++ /dev/null @@ -1,155 +0,0 @@ -{Attributes -   Constitution -   Dexterity -   Intelligence -   Mind -   Speed -   Strength -} -{Stats -   {Movement Points -      Controlled by: Speed -      ((Speed)^1.8)/20 -   } -   {Health -      Controlled by: Constitution -      ((Constitution)^1.8)/20 -   } -   {Dodges -      Controlled by: average(Dexterity, Mind, Speed) -      Max: 75% -      Min: 5% -      min(75,max(5,(4^(x/25)))) -      ((average(Dexterity, Mind, Speed))^1.8)/40 -   } -   {Parries -      Controlled by: average(Dexterity, Speed, Strength) -      Melee only -      Max: 75% -      Min: 0% -      min(75,(4^(x/25))) -   } -   {Physical Weapons -      {Damage -         Controlled by: Strength -         limits + (((Strength - 50)/75) limits) -      } -      {Accuracy -         Controlled by: Dexterity -         Max: 100% -         Min: 0% -         (30 * (log((x + 5)/4))) // Might be too generous -         Note: failing that roll halves the damages. -      } -      {Double Hits -         Controlled by: Speed -         Max: 100% -         Min: 0% -         (x^2.5)/1000 -      } -      {Critical Hits -         Controlled by: Intelligence -         Max: 100% -         Min: 0% -         (x^2.5)/1000 -      } -   } -   {Magical Weapons -      {Damage -         Controlled by: Intelligence -         limits + (((Strength - 50)/75) limits) -      } -      {Accuracy -         Controlled by: Mind -         Max: 100% -         Min: 0% -         (30 * (log((x + 5)/4))) // Might be too generous -         Note: failing that roll halves the damages. -      } -      {Double Hits -         Controlled by: Speed -         Max: 100% -         Min: 0% -         (x^2.5)/1000 -      } -      {Critical Hits -         Controlled by: Dexterity -         Max: 100% -         Min: 0% -         (x^2.5)/1000 -      } -   } -} -{Physical Attack -   {Damage Type -      Bludgeoning -      Piercing -      Slashing -   } -   {Ranged -      {Short Bow -         Minimal Range: 2 -         Maximal Range: 4 -         Damage Type: Arrow dependent -      } -      {Long Bow -         Minimal Range: 2 -         Maximal Range: 6 -         Damage Type: Arrow dependent -         Attribute Penalty: Speed -      } -      {Crossbow -         Minimal Range: 2 -         Maximal Range: 4 -         Damage Type: Bolt dependent -         Attribute Penalty: Dexterity -         Misc: High damage -      } -      {Arbalest -         Minimal Range: 2 -         Maximal Range: 6 -         Damage Type: Bolt dependent -         Attribute Penalty: Dexterity, Speed -         Misc: High damage -      } -   } -   {Melee -      {Sword -         Minimal Range: 1 -         Maximal Range: 1 -         Damage Type: Slashing -      } -      {Claymore -         Minimal Range: 1 -         Maximal Range: 2 -         Damage Type: Slashing -         Attribute Penalty: Speed -      } -      {Mace -         Minimal Range: 1 -         Maximal Range: 1 -         Damage Type: Bludgeoning -      } -      {War Hammer -         Minimal Range: 1 -         Maximal Range: 2 -         Damage Type: Bludgeoning -         Attribute Penalty: Speed -      } -      {Dagger -         Minimal Range: 1 -         Maximal Range: 1 -         Damage Type: Piercing -      } -      {Spear -         Minimal Range: 1 -         Maximal Range: 2 -         Damage Type: Piercing -         Attribute Penalty: Speed -      } -   } -} -{Base Accuracy -   Melee: Base Accuracy bonus. -   Ranged: No Base Accuracy bonus. -} diff --git a/other/db_bounty.txt b/other/db_bounty.txt deleted file mode 100644 index d31226a..0000000 --- a/other/db_bounty.txt +++ /dev/null @@ -1,18 +0,0 @@ -Designing with a "it can crash at any point" mentality -+ can't combine DB queries in an atomic manner -= Potential for partially completed tasks, "corrupting" the global DB. - -A solution could be having "bounty" entries, which work as follows: -A process P0 needs to do tasks T0, then T1, then T2. -P0 creates a bounty B0: -{ -   not_before: 60s. -   task: T0_T1_T2. -   params: [{T0.id, T1.id, 20] -} -P0 adds B0 to the Bounty DB. -P0 attempts T0, T1, and T2. -P0 removes B0 from the Bounty DB. - -There are other processes trying to access available bounties (i.e. bounties -for which the "not_before" has expired) to complete them. diff --git a/other/erl_module_template.erl b/other/erl_module_template.erl deleted file mode 100644 index 01c79bd..0000000 --- a/other/erl_module_template.erl +++ /dev/null @@ -1,17 +0,0 @@ --module(name). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/other/luck.txt b/other/luck.txt deleted file mode 100644 index 33d7fc2..0000000 --- a/other/luck.txt +++ /dev/null @@ -1,97 +0,0 @@ -Hitting your target, parrying, critical hits, double hits, and elemental status -are controlled by random chance. On the one hand, this adds depth through -management of risks and rewards, and it forces unexpected events on the players. -On the other hand, it can quickly make combats feel unfair (e.g. good tactics -failing due to bad luck) or infuriate players (e.g. missing a 95% chance shot in -XCOM). - -To mitigate the drawbacks, TO should balance the impact of luck. - -During a battle, each players has a Luck meter. Luck in between -200 and 200. It -starts at 0. - -When a player makes a roll with X% chance, the result is as follows: -Roll = rand(100); -IsSuccess = ((X + Luck) >= Roll); -if (IsSuccess) -{ -   if (X > 50) -   { -      // It was likely to succeed, pay just what you used. -      MissingPoints = max(0, (Roll - X)) -      Luck' = (Luck - MissingPoints) -   } -   else if (X =< 50) -   { -      // It was unlikely to succeed, pay a lot. -      Cost = (55 - X) // How far was it from being reasonable? -      Luck' = (Luck - Cost) -   } -} -else -{ -   // Failure due to bad roll. -   if (X >= 50) -   { -      // It was likely to succeed, you're owed a lot. -      OwedPoints = (X - 45) -      Luck' = (Luck + OwedPoints) -   } -} - -For example: - -A/ The character of a player with 15 Luck attempts a 10% chance parry: -if (Roll <= 25) -{ -   // Unlikely Success. -   Cost = (55 - 10) = 45 -   Luck' = 15 - 45 = -30 -} -else if (Roll > 25) -{ -  // Expected Failure. -} - -B/ The character of a player with 20 Luck attempts a 45% chance parry: -if (Roll <= 60) -{ -   // Unlikely Success. -   Cost = (55 - 45) = 10 -   Luck' = 20 - 10 = 10 -} -else if (Roll > 60) -{ -  // Expected Failure. -} - -D/ The character of a player with 20 Luck attempts a 55% chance parry: -if (Roll <= 70) -{ -   // Likely Success. -   UsedUpLuck = max(0, (55 - Roll)) = [0, 20] -   Luck' = 20 - UsedUpLuck = [0, 20] -} -else if (Roll > 70) -{ -  // Unlucky dice roll. -  OwedPoints = (55 - 45) = 10 -  Luck' = 20 + 10 = 30 -} - -D/ The character of a player with -35 Luck attempts a 15% chance parry: -No roll required. This fails. No luck update. - -E/ The character of a player with -35 Luck attempts a 75% chance parry: -if (Roll <= 40) -{ -   // Without the negative luck, it was likely to succeed -   // Luck clearly didn't help, so none is to be payed. -} -else if (Roll > 40) -{ -   // If not for that negative luck, you were likely to make it. -   // You're owed some luck back. -   OwedPoints = (75 - 45) = 30 -   Luck' = -35 + 30 = -5 -} diff --git a/other/magic.txt b/other/magic.txt deleted file mode 100644 index d414d65..0000000 --- a/other/magic.txt +++ /dev/null @@ -1,75 +0,0 @@ -Elements: - -            Wind -   Lightning      Snow -Fire                 Water -   Magma          Plant -            Earth - -Omnimods for each element: -- Damage (>0) -- Defense (any) -- Status Chance (0-100) -- Status Def (any) - -Chance to inflict status calculated similarly to evasion: -   min(100, max(0, {attacker status chance} - {defender status def})) - -Status Def > 100 -> ({defender status def} - 100)% of {attacker damage} are -   actually healing defender. - -Omnimods are manually set so that gaining X in an element leads to: -* X/2 in the elements next to it. -* -X in the opposite element -* -(X/2) in the elements next to its opposite element - -Having this done manually allows for exception. - -The element chosen for the status that can be triggered is chosen randomly among -the ones the character, with weights depending on the percentage of the damage -caused by that element. For each element, there are two variants: Alpha, which -inflicts a status on the character getting hit, and Beta, which grants one for -the character doing the hitting. Status are taken into consideration only after -the attack that generated them. Characters may have multiple elemental status in -effect. - -Characters affected by the status of element, be it antagonistic or not, gain -affinity in that element (i.e. omnimods for that element, and all the associated -{X/2,-X,-(X/2)} stuff). - -* Wind: -   Alpha: Reduces max movement points. -   Beta: Increases max movement points. - -* Lightning: -   Alpha: Character is disabled for a turn. -   Beta: -      Attacking this character, regardless of range, will result in taking -      lightning damage. - -* Fire: -   Alpha: -      Character suffer fire damage over time (don't forget to make it worth it -      despite the affinity gain). -   Beta: -      Character deals more damage. - -* Magma: -   Alpha: TBD -   Beta: TBD + Inflict magma damage when attacked by melee. - -* Earth: -   Alpha: Lowers the character's defense -   Beta: Increases the character's defense. - -* Plant: -   Alpha: Character cannot be healed, nor gain SPs (not even with skill). -   Beta: Character gains life-steal. - -* Water: -   Alpha: Halves the character's HP. -   Beta: The character receives some healing. - -* Snow: -   Alpha: Character loses all evasion. -   Beta: Character gets max evasion. diff --git a/other/skills.txt b/other/skills.txt deleted file mode 100644 index 9794967..0000000 --- a/other/skills.txt +++ /dev/null @@ -1,92 +0,0 @@ -Characters have an SP gauge. It starts empty. -To be decided: is the capacity of the gauge linked to a (new) stat, or is it -   simply a way to measure how much SP is required before the skill can be cast -   (i.e. it has exactly enough for one cast). - -SPs are gained from participation in an attack. The attacker gets 1 point per -attack (which should make being able to do two attacks per turn worthwhile), -1 point for a parry, and, possibly (to be decided), 1 point when defending -(maybe % chance? This reduces the importance of double hits). - -Each character has exactly one skill, which is chosen like any other part of -their equipment. Skills have infinite range, and are casted on a single target -(faction is not taken into account), which is either a character or a tile -(that may actually place the skill on a pattern around itself). -The use of a skill counts as an action (i.e. it replaces either switching -weapons or attacking). - -Multiple variants of the same skill allow players to select a more costly skill -for an increase in either power (Alpha variant), duration (Beta variant), or -both (Gamma variant). The increase should not be linear (e.g. 2 times the power -costs 175% of the default version). The X Gamma variant combines the advantages -of the Beta and the Alpha versions. It obviously costs way more than either of -them. Another variation could be to have the skill triggered later, by -targeting a tile. Depending on the variant, a character (ally, enemy, or -either) would trigger the effect upon walking on the tile. This could for -example be used for a self-resurrection skill. - -Ideas for some skills: -* Attack Anywhere: -   The caster performs an attack on the target with their current weapon, -   regardless of where that target is. - -* Shields Up {D, A0, A1, B0, B1, G0, G1}: -   Target benefits from {D: 25, A0: 50, A1: 75}% damage reduction for -   {D: 1, B0: 2, B1: 3} turns. - -* Static Heal {D, A0, A1, A2, A3}: -   Target heals for {D: 20, A0: 40, A1: 60, A2: 80, A3: 100} HPs, if nothing -   prevents it. - -* Percentage Heal {D, A0, A1, A2, A3}: -   Target heals for {D: 15, A0: 25, A1: 35, A2: 50, A3: 65} percent of their -   maximum HPs, if nothing prevents it. - -* Healing Over Time {D, A0, A1, A2, A3, B0, B1, B2, B3, G0, G1, G2, G3}: -   Target gains a {D: 4, B0: 6, B2: 8, B3: 10} turns duration status that heals -   them for {D: 6, A0: 12, A1: 18, A2: 24, A3: 30} HPs. - -* Dispel {D, A0}: -   Target loses {D: a random, A0: all} active status(es). - -* Redirection: -   Target and caster swaps all their active status. - -* Overload {D, A0, A1, B0, B1, G0, G1}: -   Target gains a {D: 1, B0: 2, B1: 3} status providing a {D: 5, A0: 10, A1: -   20}% damage increase per active status (including this one) when attacking. -   The count is done during the attack, not during the cast. - -* Trickster {D, A0, A1}: -   Target and caster swaps {D: secondary, A0: active, A1: all} weapon(s). - -* Confusion: -   The target equips their secondary weapon. - -* Vampire {D, A0, A1, A2, B0, B1, B2, G0, G1, G2}: -   Caster gains the "Vampire" active status. The Vampire status lasts -   {D: 3, B0: 6, B1: 9, B2: 12} turns and, for melee attacks: grants -   {D: 10, A0: 15, A1: 20, A2: 25}% life-steal, and adds the Vampire status -   to the defender (with a reset duration). - -* Teleportation: -   The caster is teleported to the target tile, if applicable. - -* Switch: -   Caster and target swap locations. - -* Mark Target {D, A0, A1, A2, B0, B1, B2, G0, G1, G2}: -   The target gains an active status, "Target", that increases the critical -   chance and precision of attacks it receives. The status lasts {D: 1, B0: 2, -   B1: 3, B2: 4} turns, and increases chances by {D: 15, A0: 25, A1: 35, A2: 45} -   points. - -* Petrify {D, B0, B1}: -   The target becomes inactive and invulnerable for {D: 1, B0: 2, B1: 3} turns. - -* Sacrifice {D, A0, A1, A2, A3}: -   Target gains <cost of the skill> SP points. - -* Denial {D, B0, B1, B2}: -   Target is unable to gain SP points from attacks, parries, or defenses for -   {D: 2, B0: 4, B1: 6} turns. | 


