-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Must Have: Start/End cinematic Back to jail (when touched by a enemy) Web Exe Should Have: UI for the Tablet Vision Feature Tile per Tile Can only interact with seen entities. Entities can be seen by camera, any mindControled entity (including the player) Music SFX Start Menu
- Loading branch information
Showing
27 changed files
with
2,261 additions
and
155 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,6 @@ Cargo.lock | |
|
||
# These are backup files generated by rustfmt | ||
**/*.rs.bk | ||
|
||
# Assets are now in cloud | ||
assets/** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,75 @@ | ||
# Cats Destroyer 2000 | ||
|
||
CreaJeu Edition 2023 | ||
CreaJeu Edition 2023 - Theme: ***One Object Many Use*** | ||
|
||
![fast_blue_cat](https://user-images.githubusercontent.com/73140258/216720606-6e8f7768-3170-4956-a5d1-5124741783aa.gif) | ||
|
||
## Assets are excluded from git storage | ||
|
||
Due to the inefficiency to store image in git, | ||
all asset can be download here (from the latest version): | ||
[Latest Assets - Google Drive](https://drive.google.com/drive/folders/1qk5_bIUzAUFTuI2A_C0CLmAFGyPDFsMR?usp=share_link) | ||
|
||
or in the correct release note (if from other version): | ||
[Releases - Github](https://github.com/Wabtey/cats_destroyer_2000/releases) | ||
|
||
## Rules | ||
|
||
***But du jeu*** : Arriver à s’enfuir du Labo | ||
|
||
### Binding | ||
|
||
- `M` to mindcontrol a cat | ||
- `ESC` to return to the player body | ||
- `Left Click` on the button *Hack* to hack doors | ||
- `Z Q S D` or `W A S D` or `Up Left Down Right` to move | ||
|
||
### Level Design | ||
|
||
#### Tutorial | ||
|
||
Un long couloir, avec des compartiments à gauche et à droite. | ||
Un chat normal marche dans le couloir. | ||
La sortie est au bout du couloir, bloquée par le chaton. | ||
|
||
Lae player devra: | ||
|
||
- accéder à un terminal afin d’ouvrir une des portes sur les côtés (p’etre qu’une porte pour la clarté) | ||
- mind control le chaton afin de le déplacer dans le placard | ||
- refermer la porte | ||
- avoir un délai après le mind control peut permettre d'enchaîner des actions comme ça | ||
- rehack avant que le daze du chaton se dissipe | ||
- slide jusqu’à l’exit | ||
|
||
### Mécaniques | ||
|
||
#### Tablette | ||
|
||
- Appuyer une touche pour entrer dans l’overlay tablette qui permet de sélectionner les entités repérées/vues et de les mind control. | ||
- Permet de prendre le contrôle d’une entité qui a été vu par lae player | ||
- Appuyer esc pour sortir de la tablette de re-contrôler son personnage | ||
- Permet de prendre le contrôle de caméra dispo pour voir qq entités. | ||
|
||
Petit à petit, on dévoile le niveau + les entités dedans. | ||
|
||
### Idées | ||
|
||
vv———————————————————————————————————————vv | ||
|
||
Principe du gameplay : | ||
Utiliser la tablette de contrôle pour contrôler les autres chats et les objets → One Object Many Use | ||
Tablette servira aussi d’inventaire et d’interface. | ||
|
||
Différents types de chats qui représentent différents ennemis ? | ||
|
||
Types de chats : | ||
|
||
- Chat Normal → Peut juste être déplacé | ||
- Chat Savant → Peut hacker des ordis/ouvrir des portes | ||
- Chat Espion → A une vision sous forme de cône ou bien de ligne droite (genre laser qui si détecte fonce sur le joueur) | ||
- Chat Costaud → Peut casser différents objets | ||
|
||
Nombre de croquettes max qui peut être reset que si on reset le level | ||
(ou le même style que la gestion des barrettes de RAM dans cyberpunk) | ||
|
||
Des collectibles style des clés pour déverrouiller des portes |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
use crate::characters::effects::style::{add_dazed_effect, animate_dazed_effect}; | ||
use bevy::prelude::*; | ||
|
||
pub mod style; | ||
|
||
pub struct EffectsPlugin; | ||
|
||
impl Plugin for EffectsPlugin { | ||
#[rustfmt::skip] | ||
fn build(&self, app: &mut App) { | ||
app | ||
// -- Style -- | ||
.add_system(add_dazed_effect) | ||
.add_system(animate_dazed_effect) | ||
; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
//! Particules and polished stuffs | ||
// DOC: Rename Style module ? | ||
|
||
use bevy::prelude::*; | ||
|
||
use crate::{ | ||
characters::movement::Dazed, | ||
constants::character::effects::{DAZE_STARTING_ANIM, DAZE_Y_OFFSET}, | ||
spritesheet::{AnimationTimer, DazeSheet}, | ||
}; | ||
|
||
#[derive(Component)] | ||
pub struct DazeAnimation; | ||
|
||
/// Polish - floating Stars above their head | ||
pub fn add_dazed_effect( | ||
mut commands: Commands, | ||
dazed_character_query: Query<Entity, Added<Dazed>>, | ||
effects_spritesheet: Res<DazeSheet>, | ||
) { | ||
for entity in dazed_character_query.iter() { | ||
// TODO: polish - floating Stars above their head | ||
|
||
// whatever the entity | ||
commands.entity(entity).add_children(|parent| { | ||
parent.spawn(( | ||
SpriteSheetBundle { | ||
sprite: TextureAtlasSprite { | ||
index: DAZE_STARTING_ANIM, | ||
..default() | ||
}, | ||
texture_atlas: effects_spritesheet.0.clone(), | ||
transform: Transform { | ||
translation: Vec3::from(DAZE_Y_OFFSET), | ||
scale: Vec3::splat(0.5), | ||
..default() | ||
}, | ||
..default() | ||
}, | ||
Name::new("Daze Anim"), | ||
DazeAnimation, | ||
// -- Animation -- | ||
AnimationTimer(Timer::from_seconds(0.1, TimerMode::Repeating)), | ||
// AnimState { | ||
// initial: DAZE_STARTING_ANIM, | ||
// current: DAZE_STARTING_ANIM, | ||
// }, | ||
)); | ||
}); | ||
} | ||
} | ||
|
||
// pub fn remove_daze_effect(daze_removal: RemovedComponents<Dazed>) {} | ||
|
||
pub fn animate_dazed_effect( | ||
time: Res<Time>, | ||
texture_atlases: Res<Assets<TextureAtlas>>, | ||
mut daze_effect_query: Query< | ||
( | ||
Entity, | ||
&mut AnimationTimer, | ||
&mut TextureAtlasSprite, | ||
&Handle<TextureAtlas>, | ||
), | ||
With<DazeAnimation>, | ||
>, | ||
) { | ||
for (_daze_id, mut timer, mut sprite, texture_atlas_handle) in &mut daze_effect_query { | ||
timer.tick(time.delta()); | ||
if timer.just_finished() { | ||
let texture_atlas = texture_atlases.get(texture_atlas_handle).unwrap(); | ||
|
||
sprite.index = (sprite.index + 1) % texture_atlas.textures.len(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
use bevy::prelude::*; | ||
|
||
use self::{effects::EffectsPlugin, npcs::NPCsPlugin, player::PlayerPlugin}; | ||
|
||
pub mod effects; | ||
pub mod movement; | ||
pub mod npcs; | ||
pub mod player; | ||
|
||
pub struct CharactersPlugin; | ||
|
||
impl Plugin for CharactersPlugin { | ||
#[rustfmt::skip] | ||
fn build(&self, app: &mut App) { | ||
app | ||
.add_plugin(NPCsPlugin) | ||
.add_plugin(PlayerPlugin) | ||
.add_plugin(EffectsPlugin) | ||
; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
use bevy::prelude::*; | ||
use bevy_rapier2d::prelude::Velocity; | ||
// use bevy_retrograde::prelude::Velocity; | ||
|
||
use crate::TILE_SIZE; | ||
|
||
// find the right place to put this component (indicator) | ||
#[derive(Component)] | ||
pub struct CharacterHitbox; | ||
|
||
/// Is it a good habit to seperate | ||
/// - Dazed | ||
/// - DazeTimer | ||
/// ? | ||
#[derive(Component)] | ||
pub struct Dazed { | ||
/// should be a non-repeating timer | ||
pub timer: Timer, | ||
} | ||
|
||
// #[derive(Component)] | ||
// pub struct DazeTimer { | ||
// /// should be a non-repeating timer | ||
// pub timer: Timer, | ||
// } | ||
|
||
#[derive(Component, Deref, DerefMut)] | ||
pub struct Speed(pub f32); | ||
|
||
impl Default for Speed { | ||
fn default() -> Self { | ||
Speed(50. * TILE_SIZE) | ||
} | ||
} | ||
|
||
#[derive(Bundle)] | ||
pub struct MovementBundle { | ||
pub speed: Speed, | ||
pub velocity: Velocity, | ||
} |
Oops, something went wrong.