survivor

graphical action game for the linux terminal
git clone https://git.ce9e.org/survivor.git

commit
37e06e76605eae3634144ed15450cc2c232ceb27
parent
2c33f60346875fdc2cd87d9af9face123c49ee86
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-04-09 18:44
balancing

- more massing of enemies
- bigger difference between enemies
- harder in general

Diffstat

M src/enemies.rs 52 ++++++++++++++++++++++++++--------------------------
M src/game.rs 12 ++++++------

2 files changed, 32 insertions, 32 deletions


diff --git a/src/enemies.rs b/src/enemies.rs

@@ -66,74 +66,74 @@ const ZOMBIE: EnemyType = EnemyType {
   66    66 };
   67    67 
   68    68 const EYE: EnemyType = EnemyType {
   69    -1     speed: 12.0,
   -1    69     speed: 13.0,
   70    70     size: 7.0,
   71    -1     health: 20.0,
   72    -1     power: 20.0,
   -1    71     health: 25.0,
   -1    72     power: 25.0,
   73    73     sprite: &sprites::EYE,
   74    74 };
   75    75 
   76    76 const GHOST: EnemyType = EnemyType {
   77    77     speed: 18.0,
   78    78     size: 9.0,
   79    -1     health: 15.0,
   80    -1     power: 15.0,
   -1    79     health: 30.0,
   -1    80     power: 30.0,
   81    81     sprite: &sprites::GHOST,
   82    82 };
   83    83 
   84    84 const MUMMY: EnemyType = EnemyType {
   85    -1     speed: 8.0,
   -1    85     speed: 9.0,
   86    86     size: 9.0,
   87    -1     health: 30.0,
   88    -1     power: 25.0,
   -1    87     health: 40.0,
   -1    88     power: 30.0,
   89    89     sprite: &sprites::MUMMY,
   90    90 };
   91    91 
   92    92 const HOOD: EnemyType = EnemyType {
   93    -1     speed: 14.0,
   -1    93     speed: 18.0,
   94    94     size: 9.0,
   95    -1     health: 30.0,
   96    -1     power: 40.0,
   -1    95     health: 40.0,
   -1    96     power: 50.0,
   97    97     sprite: &sprites::HOOD,
   98    98 };
   99    99 
  100   100 const HOOD2: EnemyType = EnemyType {
  101    -1     speed: 13.0,
   -1   101     speed: 16.0,
  102   102     size: 9.0,
  103    -1     health: 40.0,
  104    -1     power: 50.0,
   -1   103     health: 60.0,
   -1   104     power: 70.0,
  105   105     sprite: &sprites::HOOD2,
  106   106 };
  107   107 
  108   108 const PLANTGUY: EnemyType = EnemyType {
  109    -1     speed: 10.0,
   -1   109     speed: 12.0,
  110   110     size: 9.0,
  111    -1     health: 50.0,
  112    -1     power: 30.0,
   -1   111     health: 60.0,
   -1   112     power: 40.0,
  113   113     sprite: &sprites::PLANTGUY,
  114   114 };
  115   115 
  116   116 const RADDISH: EnemyType = EnemyType {
  117    -1     speed: 15.0,
   -1   117     speed: 17.0,
  118   118     size: 9.0,
  119    -1     health: 30.0,
  120    -1     power: 40.0,
   -1   119     health: 40.0,
   -1   120     power: 60.0,
  121   121     sprite: &sprites::RADDISH,
  122   122 };
  123   123 
  124   124 const CRAWL: EnemyType = EnemyType {
  125   125     speed: 5.0,
  126   126     size: 9.0,
  127    -1     health: 60.0,
  128    -1     power: 40.0,
   -1   127     health: 75.0,
   -1   128     power: 50.0,
  129   129     sprite: &sprites::CRAWL,
  130   130 };
  131   131 
  132   132 const SHADOW: EnemyType = EnemyType {
  133    -1     speed: 20.0,
   -1   133     speed: 22.0,
  134   134     size: 9.0,
  135    -1     health: 50.0,
  136    -1     power: 50.0,
   -1   135     health: 75.0,
   -1   136     power: 75.0,
  137   137     sprite: &sprites::SHADOW,
  138   138 };
  139   139 
@@ -171,7 +171,7 @@ pub fn get_enemy(x: f32, y: f32, i: usize) -> Enemy {
  171   171         vec![&SHADOW],
  172   172     ];
  173   173 
  174    -1     let wave = &waves[(i / 50) % waves.len()];
   -1   174     let wave = &waves[(i / 100) % waves.len()];
  175   175     let t = wave[i % wave.len()];
  176   176 
  177   177     return Enemy {

diff --git a/src/game.rs b/src/game.rs

@@ -70,10 +70,10 @@ impl Player {
   70    70             face: Dir::Right,
   71    71             speed: 30.0,
   72    72             size: 9.0,
   73    -1             health: 50.0,
   74    -1             health_max: 50.0,
   -1    73             health: 100.0,
   -1    74             health_max: 100.0,
   75    75             health_recover: 0.0,
   76    -1             power: 10.0,
   -1    76             power: 6.0,
   77    77             weapons: weapons::create_weapons(),
   78    78             damage_radius: 30.0,
   79    79             diamond_radius: 15.0,
@@ -81,7 +81,7 @@ impl Player {
   81    81             xp_factor: 1.0,
   82    82             cooldown_factor: 1.0,
   83    83             last_level: 0.0,
   84    -1             next_level: 10.0,
   -1    84             next_level: 8.0,
   85    85         };
   86    86     }
   87    87 
@@ -92,7 +92,7 @@ impl Player {
   92    92     pub fn levelup(&mut self, rng: &mut random::Rng) {
   93    93         while self.xp >= self.next_level {
   94    94             let current_level = self.next_level;
   95    -1             self.next_level += (current_level - self.last_level) * 1.3;
   -1    95             self.next_level += (current_level - self.last_level) * 1.2;
   96    96             self.last_level = current_level;
   97    97 
   98    98             match rng.gen_range(0, 13) {
@@ -192,7 +192,7 @@ impl Game {
  192   192         let sprite_height = win::iconvert_y(sprites::HEIGHT);
  193   193         let sprite_width = win::iconvert_x(sprites::WIDTH);
  194   194 
  195    -1         if self.enemies.len() < MAX_ENEMIES && self.rng.gen_f32() < dt * 2.0 {
   -1   195         if self.enemies.len() < MAX_ENEMIES && self.rng.gen_f32() < dt * 4.0 {
  196   196             let (spawn_x, spawn_y) = match self.rng.gen_range(0, 4) {
  197   197                 0 => (self.rng.gen_f32() * width, -sprite_height),
  198   198                 1 => (width + sprite_width, self.rng.gen_f32() * height),