Skip to content

Commit

Permalink
📦 beta build v0.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
james-rae committed Jan 30, 2024
1 parent 2451fe9 commit 94b91e3
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 17 deletions.
33 changes: 26 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,36 @@ A homebrew attempt at recreating classic [Solforge](https://en.wikipedia.org/wik
- :wrestling: Local head-to-head battle.
- :clown_face: Fun bonus modes.
- :crocodile: Unfriendly deckbuilder.
- :desktop_computer: Best played on a desktop monitor with standard resolution (1080p non-retina) and a pointer device.
- :iphone: Tablet / retina _works_ but has some issues at the moment.
- Tablet screen dimensions can be a poor fit for the layout.
- Touch controls to view card details are sub-par.
- Feel free to log issues with your bad experiences; I'm limited with what devices I can test on.

### Data Footprint

The core application (game logic, backgrounds, UI elements) will weigh in around 12mb. Each card level will draw around 70kb. If an enthusiastic player views every level of every card, the total download will be around 142mb.
The core application (game logic, backgrounds, UI elements) will weigh in around 16mb. Each card level will draw around 70kb. If an enthusiastic player views every level of every card, the total download will be around 146mb.

Turning off the `Big Cards` option will shave 7mb off the core app, and 93mb from all the cards (an average of 50kb per card level). You won't see the art in full glory, but it will be respectful to your data plan.
Turning off the `Big Cards` option will shave 7mb off the core app, and 93mb from all the cards (an average of 50kb per card level). You won't see the art in full glory, but it will be respectful to your data plan. Turning off the `Animations` option will save 3.5mb.

## Supported Platforms

Feel free to log issues with your bad experiences; I'm limited with what devices I can test on.

### Browser

The drawing engine now leverages the [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas) Web API. Browsers from before March 2023 may fail to run the app.

For those who want older browser support, you can fork this repo and roll back to [v9.3.0](https://github.com/grousewood-games/solforge/tree/v0.9.3). But you'll be stuck with that version and the bugs / inefficiencies it has.

### Desktop

- Should work fine on a desktop monitor with standard resolution (1080p non-retina) and a pointer device.
- Smaller screens may crop.
- 4K resolution is untested. I expect either the game takes up 1/4 of the screen, or everything is upscaled and looks fuzzy.
- Screen refresh rates of 60hz (or multiples of 60) should animate at 60fps. Other rates (e.g. 75hz) are untested. I expect they should work but with mild animation stutter (e.g. every fourth screen paint will look the same as the one before it).

### Mobile

- Touch controls work, are not the best. Use the :computer_mouse: icon or long-presses to mimic right-clicks.
- Certain screen sizes or aspect ratios may cut off parts of the game or the log.
- This may be improved in the future.
- Phone screens are likely to be horrendously disappointing.

## Parental Guide

Expand Down
15 changes: 12 additions & 3 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@

## Credits

### Assets
### Assets & Concepts

- All game rules, card art, card names & text, dog bark battle sound, and the vast majority of the UI art assets is the creation and intellectual property of [Stoneblade Entertainment](https://stoneblade.com/).
- The fancy font, `Cinzel`, was created by [Natanael Gama](https://fonts.adobe.com/designers/natanael-gama).
- The green arrows were made by `AngryMeteor`.
- The rank orb is by [Cethiel](https://opengameart.org/content/orbs-collection)
- The rank orb and animations for card leveling, overload, battle damage, rankup are by [Cethiel](https://opengameart.org/users/cethiel).
- The player damge animation is by [Sinestesia](https://opengameart.org/users/sinestesia).
- Square icons generated on [Game-Icons](https://game-icons.net).
- Enhanced versions of the large card frames are courtesty of [Spruce](https://reddit.com/user/SolSpruce/).

Expand Down Expand Up @@ -159,6 +160,14 @@ Rules around extra battles are slightly different. The new general rule is the f

Regarding `Vaerus, Herald of Fury`, a creature receives the extra battle as one would expect (start of turn, Vaerus enters field, or new creature enters field). However, if Vaerus dies prior to the battle being used, the creature retains the extra battle.

### Surviving Damage Effects

`Alyssa, Strifeborn` and `Dozer, the Dormant` will not function perfectly when hit with a barrage of damage that lowers their health to zero. These scenarios are rare but possible. As an example, `Pyre Song` can deal cumulative damage from each creature. In theory, Alyssa should survive and boost off each hit, and Dozer should replace on the first damage. The trigger that reacts to the damage will not activate until the following batch, so if the health is below 1, the creature will be death-checked before that batch can begin.

Other culprits can include arrangements of `Flamebreak Invokers`, `Cauldron Mystics`, `Ignurs`, or `Nug, Fury Fists`.

`Dream Tree` works as expected since the effect does not influence the creature (so it's irrelevant if later damage killed it).

### Ator, Thunder Titan

I cannot find what the original behavior was, but `Ator, Thunder Titan` will not apply the `Assault` effect retroactively. Only creatures forged after Ator is on the field will receive his blessings.
Expand Down Expand Up @@ -210,7 +219,7 @@ The original game had a left-to-right rule precedence. From Ximane's advanced ru

> If a `Shardplate Behemoth` is to the left of an `Alloyin General`, its ability first makes its attack equal to its health, then the General's ability boosts its attack, which gives it 2 more attack than health. If the Behemoth is on the right of the General, the General boosts its attack, and then its attack is set to its health, effectively negating the General's ability.
In this edition, Behemoth's card rule trumps all. The attack will always equal the health. However, if attack buffs are applied to the Behemoth, and then it has abilities removed (e.g., `Wipe Clean` is cast), the buff will remain. So if `Lysian Shard` is cast on a Behemoth, then it is wiped, the resulting dino will have 6 attack, not 0.
In this edition, Behemoth's card rule trumps all. The attack will always equal the health. However, if permanent attack buffs are applied to the Behemoth, and then it has abilities removed (e.g., `Wipe Clean` is cast), the buff will remain. So if `Lysian Shard` is cast on a Behemoth, then it is wiped, the resulting dino will have 6 attack, not 0.

### Voltaic Prophet

Expand Down
3 changes: 2 additions & 1 deletion docs/rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@ The following game modes are available to enhance your fun:
- `Cheater`: If you play too good, the AI will cheat.
- `Battle Bark`: Lets you turn on or off the battle sound.
- `90% Size`: Will shrink the UI by 10%. Useful to make the app fit on tablets with `4:3` aspect ratio.
- `Big Cards`: Shows larger card images when viewing the card details. Turning off will reduce the amount of data requested by the game.
- `Big Cards`: Shows larger card images when viewing the card details. Turning off will reduce the amount of data requested by the game.
- `Animations`: Turning off will stop the animations. Things will run faster, it may be tricky to figure out what is happening.

You can also select a different game playmat here. The classic 5 are provided, but the game colour schemes tend to work best with the default `Uterra` background.

Expand Down
6 changes: 3 additions & 3 deletions play/dist/solforge.js

Large diffs are not rendered by default.

10 changes: 7 additions & 3 deletions play/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,12 @@
touch-action: manipulation;
}
#card {
z-index: 8;
z-index: 9;
}
#decklist {
z-index: 8;
}
#effects {
z-index: 7;
}
#hand {
Expand All @@ -114,7 +117,7 @@
#field {
z-index: 4;
}
#effects {
#hilite {
z-index: 3;
}
#game-ui {
Expand Down Expand Up @@ -154,10 +157,11 @@
<!-- For canvases, width and height represent the rendering surface size. CSS size changes will scale that surface -->
<canvas id="card" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="decklist" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="effects" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="hand" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="player" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="field" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="effects" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="hilite" width="1024" height="768" class="uiSize100"></canvas>
<canvas id="game-ui" width="1024" height="768" class="uiSize100"></canvas>

<img id="mainmenu" src="img/background/leash.jpg" class="uiSize100" />
Expand Down

0 comments on commit 94b91e3

Please sign in to comment.