ozkriff / zemeroth Goto Github PK
View Code? Open in Web Editor NEW😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust
Home Page: https://ozkriff.itch.io/zemeroth
License: Apache License 2.0
😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust
Home Page: https://ozkriff.itch.io/zemeroth
License: Apache License 2.0
I hate that it's done right now with raw HTML blocks.
Replace VecDeque
in src/core/movement.rs
with BinaryHeap
.
See https://doc.rust-lang.org/std/collections/binary_heap/#examples
Remove imports like use ::{Sprite, Context, Time};
See ozkriff/zoc#211
This should fix #39 on OSX
See gfx-rs/gfx#1377
I've disabled it temporary as there're some issues with appveyour:
https://ci.appveyor.com/project/ozkriff/zemeroth/build/1.0.38/job/kw4dcp03nm0s4k9l
Build started
git clone -q --branch=i31_pop_up_messages https://github.com/ozkriff/zemeroth.git C:\projects\zemeroth
git checkout -qf 217100d56a99da820817f50097f5a9ba23eef5ab
Restoring build cache
Cache 'C:\Users\appveyor\.cargo\registry' - Restored
Running Install scripts
set PATH=C:\msys64\usr\bin;%PATH%
set PATH=C:\msys64\mingw32\bin;%PATH%
if "%TARGET%" == "x86_64-pc-windows-gnu" set PATH=C:\msys64\mingw64\bin;%PATH%
curl -sSf -o rustup-init.exe https://win.rustup.rs
rustup-init.exe --default-host %TARGET% --default-toolchain %CHANNEL% -y
info: syncing channel updates for 'stable-i686-pc-windows-gnu'
error: could not download file from 'https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256' to 'C:\Users\appveyor\.rustup\tmp\hxecc8aukt3fbk29_file'
info: caused by: error during download
info: caused by: [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - The revocation function was unable to check revocation because the revocation server was offline.)
Command exited with code 1
and travis (on OSX beta and nightly):
$ git grep "pub(super"
hate/src/context.rs: pub(super) fn new(tx: Sender<screen::Command>, settings: Settings) -> Context {
hate/src/context.rs: pub(super) fn load_texture<P: AsRef<Path>>(&mut self, path: P) -> Texture {
hate/src/context.rs: pub(super) fn clear(&mut self) {
hate/src/context.rs: pub(super) fn should_close(&self) -> bool {
hate/src/context.rs: pub(super) fn flush(&mut self) {
hate/src/context.rs: pub(super) fn font(&self) -> &rusttype::Font {
hate/src/context.rs: pub(super) fn factory_mut(&mut self) -> &mut gfx_device_gl::Factory {
hate/src/context.rs: pub(super) fn draw_mesh(&mut self, mvp: Matrix4<f32>, mesh: &Mesh) {
Something like http://www.cocos2d-x.org/wiki/Actions#Easing or Piston's https://github.com/PistonDevelopers/piston-examples/blob/master/src/sprite.rs .
Check https://docs.rs/easing and https://docs.rs/ezing
I'm not sure if the game really needs them (xcom-like abilities with cooldowns should emulate this to some extent), but it would be cool to build a prototype.
How they work in BS (from https://bannersaga.gamepedia.com/Stats):
Willpower (WP or WIL) measures a unit's capacity to perform actions that exceed its regular 'potential'. These actions can be any of the following:
- Move longer (more tiles) than normal.
- Inflict more damage to an enemy unit's Strength or Armor.
- Use an active ability.
Points of Willpower are spent (depleted) when a unit executes these feats; when Willpower runs out, then the unit can only perform normal movement and attacks.
The amount of Willpower that can be spent for extra movement & damage cannot exceed the unit's Exertion stat (see below). The amount of Willpower spent on an active ability is only limited by the Rank of the ability that the unit desires to use; abilities of Rank-{1,2,3} cost {1,2,3}WP, respectively.
Willpower can be replenished by the following means:
- Resting: If a unit terminates his turn without neither moving, nor attacking, nor using an active ability, then 1WP is restored.
- Using 'The Horn', a magic item fueled by knocking-out enemies.
- Specific abilities, granted by allies or equipped items (only for the single-player game).
The maximum Willpower of a unit cannot be exceed by these mechanisms.
Exertion (EX or EXE) dictates how much Willpower a unit can use to boost its movement or attack damage. You are not restricted to using Willpower for only one action per turn, since you can only boost each action for as much Willpower you have left and what your Exertion allows.
Example: A unit with 2 Exertion and 4 Willpower can (a) move 2 extra tiles, and/or (b) do 2 more damage.
Exertion is a fixed stat that can only be temporarily decreased (zeroed) by a specific active ability in the single-player game. Note that units are normally allowed to have zero Exertion, meaning that they can only use their Willpower for active abilities. Currently available Exertion range is between 0-3.
Fix and post "unpublished" drafts in Russian about ZoC's development.
Just for the history.
They must be on gitlab of bitbucket repo.
After some time make something like http://imgur.com/gallery/UJODo
https://ci.appveyor.com/project/ozkriff/zemeroth/build/1.0.28/job/8cndcdxka0xpbprs#L104
Updating build cache...
Cache 'target' - Uploading (73,418,064 bytes)...100%Error uploading cache entry to the cache storage: The maximum cache size of 1,000 MB will be exceeded.
Cache 'C:\Users\appveyor\.cargo\registry' - Up to date
Build success
See https://www.appveyor.com/docs/build-cache/#cleaning-up-cache (?)
Right now units die from a single hit. That won't work well with reactions attacks (#25). Units should have some kind of basic hit points.
I'm going to call this unit's property "Strength" - like in Banner Saga, as I'm going to use this later as an attack modifier too.
I didn't know that cargo fmt
is not formatting subcrates :( , so häte's formatting is a bit rotten now.
I think that there're should be a timer in Game screen for this. The blocking time should be based on modified visualize_event
s output:
pub fn visualize_event(
state: &State,
view: &mut GameView,
context: &mut Context,
event: &ActiveEvent,
) -> (Time, Box<Action>) {
...
as it's visualize_event
who knows about separation between important and cosmetic scene actions.
See https://github.com/tomaka/rodio . I have no idea if it works on android though.
I need a place to post monthly reports and things like that. Using rust forum (as I've done for ZoC) isn't the best option in the long-term perspective.
It would be cool to switch the blog to some Rust generator like cobalt.rs but it seems like none of them support restructuredtext format and I really want to use it.
See gfx-rs/gfx#1415
Jokers can be used as Attacks or Moves.
See https://github.com/ozkriff/zemeroth/blob/1d615692e/src/core/mod.rs#L30
See http://battleworldskronos.wikia.com/wiki/Battle_Worlds:_Kronos#Gameplay :
"Armor" is defensive stat, "Break" is offensive.
From Banner Saga:
Armor (ARM) serves as a defense rating denoting how vulnerable is a unit to attacks. Specifically, Armor protects a unit's Strength by decreasing incoming damage.
Break (AB or BRK) is the amount of direct damage a unit can naturally do to a target's Armor and reduces the enemy's Armor according to said amount.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.