random floors
This commit is contained in:
parent
0da395d3d6
commit
29299a3100
@ -45,10 +45,10 @@ const statsLearnableX = () => Math.floor(statsX() + statsWidth() / 2);
|
|||||||
const statsTextMargin = () => 24;
|
const statsTextMargin = () => 24;
|
||||||
const statsLearnableMargin = () => 12;
|
const statsLearnableMargin = () => 12;
|
||||||
|
|
||||||
const logWidth = () => combatWidth() * 0.5;
|
const logWidth = () => Math.floor(combatWidth() * 0.5);
|
||||||
const logHeight = () => combatHeight() * 0.3;
|
const logHeight = () => Math.floor(combatHeight() * 0.3);
|
||||||
const logY = () => headerHeight() + (combatHeight() * 0.7);
|
const logY = () => Math.floor(headerHeight() + (combatHeight() * 0.7));
|
||||||
const logX = () => combatWidth() * 0.2;
|
const logX = () => Math.floor(combatWidth() * 0.2);
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
@ -69,13 +69,13 @@ class StatSheet extends Phaser.Scene {
|
|||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
this.specs.add(this.add.text(X_MARGIN, 0, 'Common Specs', TEXT.HEADER));
|
this.specs.add(this.add.text(X_MARGIN, 0, 'Common', TEXT.HEADER));
|
||||||
cryp.specs.common.forEach((specInfo, i) => listSpecs(1, specInfo, i));
|
cryp.specs.common.forEach((specInfo, i) => listSpecs(1, specInfo, i));
|
||||||
|
|
||||||
this.specs.add(this.add.text(X_MARGIN * 2, 0, 'Uncommon Specs', TEXT.HEADER));
|
this.specs.add(this.add.text(X_MARGIN * 2, 0, 'Uncommon', TEXT.HEADER));
|
||||||
cryp.specs.uncommon.forEach((specInfo, i) => listSpecs(2, specInfo, i));
|
cryp.specs.uncommon.forEach((specInfo, i) => listSpecs(2, specInfo, i));
|
||||||
|
|
||||||
this.specs.add(this.add.text(X_MARGIN * 3, 0, 'Rare Specs', TEXT.HEADER));
|
this.specs.add(this.add.text(X_MARGIN * 3, 0, 'Rare', TEXT.HEADER));
|
||||||
cryp.specs.rare.forEach((specInfo, i) => listSpecs(3, specInfo, i));
|
cryp.specs.rare.forEach((specInfo, i) => listSpecs(3, specInfo, i));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ class StatSheet extends Phaser.Scene {
|
|||||||
if (this.hoverText) this.hoverText.destroy();
|
if (this.hoverText) this.hoverText.destroy();
|
||||||
this.hoverText = this.add.text(x, y, description, {
|
this.hoverText = this.add.text(x, y, description, {
|
||||||
fontSize: '16px',
|
fontSize: '16px',
|
||||||
fontFamily: 'Arial',
|
fontFamily: 'Jura',
|
||||||
color: '#ffffff',
|
color: '#ffffff',
|
||||||
backgroundColor: '#222222',
|
backgroundColor: '#222222',
|
||||||
}).setPadding(32);
|
}).setPadding(32);
|
||||||
|
|||||||
@ -7,13 +7,13 @@ const WIDTH = MENU_MAIN.width();
|
|||||||
const HEIGHT = MENU_MAIN.height();
|
const HEIGHT = MENU_MAIN.height();
|
||||||
const TEXT_MARGIN = 24;
|
const TEXT_MARGIN = 24;
|
||||||
|
|
||||||
const menuX = WIDTH / 10;
|
const menuX = Math.floor(WIDTH / 10);
|
||||||
const menuY = HEIGHT * 0.8;
|
const menuY = Math.floor(HEIGHT * 0.8);
|
||||||
const menuWidth = WIDTH / 10;
|
const menuWidth = Math.floor(WIDTH / 10);
|
||||||
const menuHeight = HEIGHT * 0.2;
|
const menuHeight = Math.floor(HEIGHT * 0.2);
|
||||||
|
|
||||||
const X_LEARN = WIDTH * 2 / 4;
|
const X_LEARN = Math.floor(WIDTH * 2 / 4);
|
||||||
const Y_SKILLS = HEIGHT * 0.5;
|
const Y_SKILLS = Math.floor(HEIGHT * 0.5);
|
||||||
|
|
||||||
|
|
||||||
function addButton(scene, x, y, cback, name) {
|
function addButton(scene, x, y, cback, name) {
|
||||||
|
|||||||
@ -3,6 +3,28 @@
|
|||||||
* Express something
|
* Express something
|
||||||
* Prove something
|
* Prove something
|
||||||
|
|
||||||
|
* 1: Fighting against human nature is a losing game
|
||||||
|
* 2: Aesthetics matter
|
||||||
|
* 3: Resonance is important
|
||||||
|
* 4: Make use of piggybacking
|
||||||
|
* 5: Don't confuse "interesting" with "fun"
|
||||||
|
* 6: Understand what emotion your game is trying to evoke
|
||||||
|
* 7: Allow the players the skill to make the game personal
|
||||||
|
* 8: The details are where the players fall in love with your game
|
||||||
|
* 9: Allow your players to have a sense of ownership
|
||||||
|
* 10: Leave room for the player to explore
|
||||||
|
* 11: If everyone likes your game, but no one loves it, it will fail
|
||||||
|
* 12: Don't design to prove you can do something
|
||||||
|
* 13: Make the fun part also the correct strategy to win
|
||||||
|
* 14: Don't be afraid to be blunt
|
||||||
|
* 15: Design the component for its intended audience
|
||||||
|
* 16: Be more afraid of boring your players than challenging them
|
||||||
|
* 17: You don't have to change much to change everything
|
||||||
|
* 18: Restrictions breed creativity
|
||||||
|
* 19: Your audience is good at recognizing problems and bad at solving them
|
||||||
|
* 20: All the lessons connect
|
||||||
|
|
||||||
|
|
||||||
# Key Mechanics
|
# Key Mechanics
|
||||||
* 10d chaos maths, not rock paper scissors
|
* 10d chaos maths, not rock paper scissors
|
||||||
* phys is faster and chaotic
|
* phys is faster and chaotic
|
||||||
@ -98,53 +120,3 @@ gem td style attr combinations
|
|||||||
|
|
||||||
slimey
|
slimey
|
||||||
ghostly
|
ghostly
|
||||||
|
|
||||||
|
|
||||||
* 1: Fighting against human nature is a losing game
|
|
||||||
* 2: Aesthetics matter
|
|
||||||
* 3: Resonance is important
|
|
||||||
* 4: Make use of piggybacking
|
|
||||||
* 5: Don't confuse "interesting" with "fun"
|
|
||||||
* 6: Understand what emotion your game is trying to evoke
|
|
||||||
* 7: Allow the players the skill to make the game personal
|
|
||||||
* 8: The details are where the players fall in love with your game
|
|
||||||
* 9: Allow your players to have a sense of ownership
|
|
||||||
* 10: Leave room for the player to explore
|
|
||||||
* 11: If everyone likes your game, but no one loves it, it will fail
|
|
||||||
* 12: Don't design to prove you can do something
|
|
||||||
* 13: Make the fun part also the correct strategy to win
|
|
||||||
* 14: Don't be afraid to be blunt
|
|
||||||
* 15: Design the component for its intended audience
|
|
||||||
* 16: Be more afraid of boring your players than challenging them
|
|
||||||
* 17: You don't have to change much to change everything
|
|
||||||
* 18: Restrictions breed creativity
|
|
||||||
* 19: Your audience is good at recognizing problems and bad at solving them
|
|
||||||
* 20: All the lessons connect
|
|
||||||
|
|
||||||
Evasion:
|
|
||||||
• Provides a X% chance to dodge direct hits
|
|
||||||
• Exists a bar with e.g. 200 / 200 evasion rating
|
|
||||||
• Your chance to dodge is reduced as your evasion rating is reduced
|
|
||||||
20% base dodge with e.g 150 / 200 rating will reduce your chance to dodge to 15%
|
|
||||||
|
|
||||||
• As you take damage your evasion rating decreases as a linear proportion of your HP bar
|
|
||||||
(not armour or magic shield)
|
|
||||||
E.g. with 700/900 hp your (200 / 200) evasion rating would be reduced to
|
|
||||||
(7/9) * 200 = 155
|
|
||||||
|
|
||||||
|
|
||||||
Armor:
|
|
||||||
• Defensive bonus against incoming physical damage
|
|
||||||
• Provides a X% mitigation to reduce incoming physical damage before it is applied
|
|
||||||
• Armor exists as an additional pseudo health bar
|
|
||||||
• Armor is reduced to zero before damage is applied to cryp health
|
|
||||||
• If damage taken is physical, armor is the first defensive bar to be reduced
|
|
||||||
• A cryp has the X% mitigation while they have at least 1 armour
|
|
||||||
|
|
||||||
Magic Shield (same as armor basically)
|
|
||||||
• Defensive bonus against incoming magic damage
|
|
||||||
• Provides a X% mitigation to reduce incoming magic damage before it is applied
|
|
||||||
• Magic shield exists as an additional pseudo health bar
|
|
||||||
• Magic shield is reduced to zero before damage is applied to cryp health
|
|
||||||
• If damage taken is magic, armor is the first defensive bar to be reduced
|
|
||||||
• A cryp has the X% mitigation while they have at least 1 magic shield
|
|
||||||
Loading…
x
Reference in New Issue
Block a user