Commit graph

279 commits

Author SHA1 Message Date
Andrei "Akari" Alexeyev
96a0b5d583 Merge branch 'master' into extraspells 2017-03-20 08:18:59 +02:00
Andrei "Akari" Alexeyev
2f5629befa clear bullets and play a sound upon reaching full power 2017-03-19 04:56:55 +02:00
Andrei "Akari" Alexeyev
807df43681 Slightly eased the deathbombing window
Also prevented the dying player from being drawn, it seems to look
better.
2017-03-19 04:14:28 +02:00
Andrei "Akari" Alexeyev
37f2506db7 Some changes to bomb mechanics:
* Always reset the number of bombs to initial value on death,
      any additional bombs are lost.
    * Deathbombing now costs 2 bombs (or 1 if the player has only 1)
2017-03-19 04:05:06 +02:00
Andrei "Akari" Alexeyev
6d730f6061 Fixed bomb projectile cancellation
Only cancel enemy projectiles (previously, player projectiles would be
cancelled too, and give you points).
Fire only the basic player projectiles during bombs.
2017-03-19 03:32:11 +02:00
Andrei "Akari" Alexeyev
a1a8ea6a61 Merge branch 'master' into extraspells 2017-03-16 10:04:05 +02:00
Andrei "Akari" Alexeyev
6d9078bda2 fixed incorrect resource name 2017-03-13 23:59:49 +02:00
Andrei "Akari" Alexeyev
c82928a8da WIP transition from resource scanning to manual preloading 2017-03-11 21:36:25 +02:00
Andrei "Akari" Alexeyev
86930cfdc0 Merge branch 'master' into extraspells 2017-03-11 03:49:09 +02:00
Andrei "Akari" Alexeyev
208ead92c7 Merge branch 'master' into extraspells 2017-03-10 19:59:13 +02:00
Andrei "Akari" Alexeyev
46ca012e6b Merge remote-tracking branch 'origin/master' into res-refactor 2017-03-10 03:39:16 +02:00
laochailan
7936d6c01b Tweaked death effect 2017-03-09 13:21:36 +01:00
Andrei "Akari" Alexeyev
389a26dbcf Merge branch 'master' into res-refactor 2017-03-07 02:00:45 +02:00
Andrei "Akari" Alexeyev
c6c8e58686 Merge branch 'master' into extraspells 2017-03-07 01:57:32 +02:00
Andrei "Akari" Alexeyev
771f4e1414 i know that i somehow broke replays again and i don't know if this helps 2017-03-07 01:57:14 +02:00
Andrei "Akari" Alexeyev
5b191a4833 Merge branch 'master' into res-refactor 2017-03-06 23:41:37 +02:00
Andrei "Akari" Alexeyev
8ecb7eeedb Merge branch 'master' into extraspells 2017-03-06 23:40:45 +02:00
Andrei "Akari" Alexeyev
22314f9582 converted SIGN into a function 2017-03-06 17:32:51 +02:00
Andrei "Akari" Alexeyev
591b5258fc Improved player input handling. Smooth focus transitions at all times.
Note that the focus change may desync some old replays (particularly,
the MarisaA ones)
2017-03-06 16:24:57 +02:00
laochailan
bb23ccc5bc Merge branch 'master' into extraspells 2017-03-04 11:39:24 +01:00
laochailan
92d9aae9b1 block player related particles from drawing 2017-03-04 10:21:45 +01:00
Andrei "Akari" Alexeyev
24dd1c8c39 Merge branch 'master' into extraspells 2017-03-03 19:45:20 +02:00
Andrei "Akari" Alexeyev
41fa6d9d76 malloc-less colors 2017-03-03 19:31:04 +02:00
Andrei "Akari" Alexeyev
c24ff45267 Merge branch 'master' into extraspells 2017-02-28 01:54:13 +02:00
Andrei "Akari" Alexeyev
671f3b8d3a gamepad options menu improvements 2017-02-28 00:58:47 +02:00
Andrei "Akari" Alexeyev
029c2597f6 Support extra spells in spell practice mode
Also fixed background lasers not rendering after @lasch0r's rebase
2017-02-25 00:08:23 +02:00
Andrew "Akari" Alexeyew
ba4adfcdcd Boss death fix + WIP wriggle extraspell 2017-02-25 00:08:23 +02:00
Andrew "Akari" Alexeyew
ac7255e7e6 more extraspell improvements 2017-02-25 00:08:23 +02:00
Andrew "Akari" Alexeyew
772d1a8b0e extraspell tweaks 2017-02-25 00:08:23 +02:00
Andrew "Akari" Alexeyew
809b59b188 basic support for extraspells. Works kind of like last spells in IN 2017-02-25 00:08:23 +02:00
Andrei "Akari" Alexeyev
db3f474035 Got rid of all the imaginary constants
They are a non-standard GCC extension, not all compilers support them
universally. An extra character is a small price to pay for portability.
2017-02-23 12:39:31 +02:00
makise-homura
224ebd641f Integral complex constant fixed 2017-02-18 04:21:33 +01:00
Andrei "Akari" Alexeyev
ba64c5cfb8 Fixed some warnings that mingw spits out 2017-02-17 21:27:22 +02:00
Andrei "Akari" Alexeyev
0be20dab0d Improved replay consistency 2017-02-15 19:34:47 +02:00
Andrei "Akari" Alexeyev
1380015e70 Properly reset player when advancing to next stage
Fixes the bomb key failing and possibly other things
2017-02-15 18:09:51 +02:00
Andrei "Akari" Alexeyev
c1bf52ab0b Power penalty adjustments
- Lose 30%, drop 15%
    - Drop at least 2 power items
    - Improved scattering of drops
    - No penalty in god mode
2017-02-12 02:11:25 +02:00
Andrew "Akari" Alexeyew
6adc079ecd Power penalty for dying: lose 1/2, drop 1/3 2017-02-12 00:23:01 +02:00
Andrei "Akari" Alexeyev
d524909f3a Revert "Lose 25% of current power on death"
This reverts commit 6c6e4d8484.
2017-02-12 00:13:23 +02:00
Andrei "Akari" Alexeyev
6c6e4d8484 Lose 25% of current power on death
To make power at least somewhat relevant until we're at the rebalancing phase
2017-02-11 06:09:13 +02:00
Andrei "Akari" Alexeyev
9a7a874783 Use the standard bool type instead of that stupid enum
Also removed all of the annoying trailing tabs/whitespaces
2017-02-11 05:56:47 +02:00
Andrei "Akari" Alexeyev
985b6d1dd6 Block iddqd inputs correctly in release builds 2017-02-11 03:56:34 +02:00
Andrei "Akari" Alexeyev
ebb0acdd43 Fixed having 0 lifes being a gameover condition
Only dying with 0 lifes left should cause a gameover.
That behaviour has unintentionally changed with this commit: 14ef066d14
Beware of prefix/postfix operators, @makise-homura!
2017-02-11 03:47:36 +02:00
Andrei "Akari" Alexeyev
c03011ca69 God mode improvements
Removed the compile-time option. Instead, added a new keybinding that toggles god mode (default: q), only usable if built with DEBUG. This makes toggling god mode much more convenient and makes replays consistent between release and debug builds
2017-02-11 03:24:47 +02:00
Andrei "Akari" Alexeyev
e8f52f1b49 Scoring changes
* Score is now preserved between stages in story mode as it was intended
    * Score given for shooting enemies is now based on the projectile damage
    * Some score is also given for shooting the boss, also based on the projectile damage
    * Score given for grazing has been increased substantially
    * Grazing range has been increased
    * The graze counter is now reset between stages
2017-02-11 00:05:22 +02:00
Andrei "Akari" Alexeyev
0bbf1a619e Further refinements to replay API and structures
Compatibility preserved.

The replay API functions are now completely independent of the global state.
2017-02-10 01:24:19 +02:00
Andrei "Akari" Alexeyev
d0377bd537 Eliminated floating point values from replays for portability
Player power is now internally an integer. There is no good reason to use floating point math there. Stored as an uint16 in replays.
Player coordinates are now floored when a stage starts. This is unnoticable to the player. Stored as a pair of uint16s in replays.
2017-02-08 21:59:43 +02:00
Andrei "Akari" Alexeyev
71f57bab93 Improved handling of gamepad axis input and sensitivity 2017-02-04 15:41:15 +02:00
Andrei "Akari" Alexeyev
167e9e12f1 Initial migration to SDL2 (WIP) 2017-02-04 04:56:40 +02:00
makise-homura
14ef066d14 Added TAISEI_IDDQD cmake variable (have effect only with TAISEI_DEBUG) that makes player lives infinite (useful for stage debug) 2017-01-30 22:26:45 +03:00
laochailan
003bdce57a some new sounds 2017-01-28 19:56:17 +01:00
makise-homura
991af45b85 Integral complex constants changed to float 2016-12-19 17:17:09 +03:00
Andrew "Akari" Alexeyew
536b5b7f09 "Fixed" a stupid input workaround. It doesn't depend on keyboard anymore. 2012-08-17 21:58:23 +03:00
Andrew "Akari" Alexeyew
63108d58f5 Adjustable sensitivity in free axis mode 2012-08-15 18:03:53 +03:00
Andrew "Akari" Alexeyew
4754e6c76e Optional free axis mode 2012-08-15 17:36:39 +03:00
Andrew "Akari" Alexeyew
30befb3960 basic gamepad/joystick support 2012-08-15 03:41:21 +03:00
Andrew "Akari" Alexeyew
4b1486cc47 fixed a desync 2012-08-14 22:09:15 +03:00
laochailan
106034ecbb Merge branch 'master' into newmenu 2012-08-14 17:59:26 +02:00
Andrew "Akari" Alexeyew
7d53d3fb27 laser grazing 2012-08-14 17:14:53 +03:00
Andrew "Akari" Alexeyew
ff095d231b graze counter for the HUD 2012-08-13 20:10:41 +03:00
Andrew "Akari" Alexeyew
0d7c4d1084 Merge branch 'master' into newmenu 2012-08-13 18:55:37 +03:00
laochailan
c4e0298922 blocked ingame menu, instantselect flag 2012-08-12 20:16:40 +02:00
Andrew "Akari" Alexeyew
a2f3cea4eb more IN-like myon 2012-08-12 19:00:56 +03:00
Andrew "Akari" Alexeyew
5cf7b5b4f9 fixed the shooting after continue/unpause complaint 2012-08-11 16:16:57 +03:00
laochailan
6cac793550 Merge branch 'master' of github.com:laochailan/taisei 2012-08-11 14:25:31 +02:00
laochailan
9e6ae8cbb4 fixed immortal elly 2012-08-11 14:24:58 +02:00
Andrew "Akari" Alexeyew
f780addeec Fixed the failed-deathbomb complaint. You can use a bomb only after a second since the respawn. 2012-08-11 15:03:41 +03:00
Andrew "Akari" Alexeyew
4eebea67e0 gameover improvements 2012-08-08 20:09:04 +03:00
Andrew "Akari" Alexeyew
f2cf436ffa Hopefully fixed the replay desync disaster. I'm going to have nightmares about it. Needs more testing. 2012-08-07 03:45:38 +03:00
Andrew "Akari" Alexeyew
385c292606 made it work with all shot modes 2012-08-07 00:49:16 +03:00
laochailan
62621ae345 removed some ancient comments 2012-08-03 17:06:25 +02:00
Andrew "Akari" Alexeyew
7b42664663 Removed a debug printf 2012-07-29 16:28:49 +03:00
Andrew "Akari" Alexeyew
7b337a87ae Fixed several replay and input problems 2012-07-29 16:27:15 +03:00
laochailan
c5eba2156d enemy.unbombable, bombs hurt bosses 2012-07-28 19:45:51 +02:00
Andrew "Akari" Alexeyew
5a7f17a240 Added a custom random generator 2012-07-27 20:11:45 +03:00
laochailan
d2b1da1bca plr_* -> player_* 2012-07-20 16:11:24 +02:00
laochailan
d185b7e66d Fixed continue movement bug. for real. 2012-07-18 18:21:59 +02:00
laochailan
f9e513c93a Fixed continue controls bug 2012-07-18 11:24:37 +02:00
Akari
61c15540c2 If replay ends with a gameover, no menu pops up during playback 2012-07-17 11:11:29 +00:00
Andrew "Akari" Alexeyew
5308856f1f proper replay saving and some minor stuff 2012-07-16 18:47:06 +03:00
Andrew "Akari" Alexeyew
f6af97a94f Merge remote-tracking branch 'upstream/master' into replays
Conflicts:
	src/stages/stage3.c
2012-07-15 19:03:31 +03:00
laochailan
ba91d7b5eb Made bombs clear bullets while active 2012-07-15 17:01:13 +02:00
Andrew "Akari" Alexeyew
ccc9f341db suddenly, replays, thousands of them. (not really, just one for now) 2012-07-14 20:46:03 +03:00
Andrew "Akari" Alexeyew
8e0f390386 Remade player input and movement, more or less replay-ready now. Also made the direction vector normalized. 2012-07-14 17:37:52 +03:00
laochailan
02233cb175 Added stage skip mode 2012-04-06 17:50:17 +02:00
laochailan
9cd2187225 GL profiling, removing redundant gl calls 2012-04-05 14:24:55 +02:00
laochailan
8d236c7678 Balanced shotmodes and stage 2011-11-05 10:24:58 +01:00
laochailan
9242166daf Renovated Youmu Slash of Present bomb 2011-11-02 20:00:14 +01:00
laochailan
2ab202573d Renovated Marisa/Star Sign 2011-11-01 21:20:40 +01:00
laochailan
120010ba72 Enabled shooting while bombing. 2011-10-13 09:47:34 +02:00
laochailan
fc7b99325f Added MASTER SPARKU! 2011-07-05 15:20:19 +02:00
laochailan
4c3d6512d2 Did the same for options 2011-07-04 14:21:36 +02:00
laochailan
bd1694226c death delay and fixed controls in menu 2011-07-04 14:10:12 +02:00
laochailan
0b2aaf0799 Split up Global and Resources
reduced number of variables.
2011-07-04 09:14:08 +02:00
laochailan
11a130abcc limited continues + fbo fix
went over the continue thing, also had a fix for some rtt issue (stage was rendered way too wide on the left).
2011-07-02 12:45:32 +02:00
Akari
29b12b6253 Allowed the player to continue the game upon losing all lifes (asked with a menu). Continues are kept track of, may be used later to implement the traditional no-good-end-with-continues. 2011-07-02 12:39:36 +03:00
laochailan
a2a6fb9343 marisa laser revamped
also added fullscreen config option
2011-06-29 17:01:03 +02:00
laochailan
561a7faf4b fancyness and content
i am content with the current development of content.
2011-06-28 19:23:02 +02:00
laochailan
5a2ac5b7ba "API changes", swirl
you see dat swirl? you see two z^3*i^|z|?
2011-06-26 13:45:27 +02:00
laochailan
512fd9a8e3 deathbombing, marisa shot #1
DEATHBOMB_TIME shall be 10 frames. i think it's appropriate. marisa haz lasorz. (actually made of projectiles, not from lasers). some fixes.
2011-06-25 12:41:40 +02:00
laochailan
e2ec67bc39 Player Selection.
may also include traces of minor fixes i forgot.
2011-06-24 19:16:05 +02:00
laochailan
c811fa76e7 Fx/API/Particles
Bullet creation and death effects (don't know what is new in detail), improvements on the "API", especially around create_projectile() and extensive use of particles in addtion with generic particle/projectile movement and drawing rules (see projectile.h)
2011-05-21 15:02:19 +02:00
laochailan
5239e7ec08 added myon draw rule
sometimes complicated things already lay on the table. think about it before sacrificing your paper and spinal health for extensive math gore.
2011-05-14 17:26:43 +02:00
laochailan
91b3b7d65e reference system
added some kind of reference system (see list.h) to ensure particles/projectiles/enemies storing pointers to each other that they will not access a borked address.
2011-05-13 19:03:02 +02:00
laochailan
b16df91ad5 removing SDL_image dependency
taisei now uses plain libpng to load graphics ... and various other changes I don't remember.
2011-05-06 17:09:43 +02:00
laochailan
c220f7b4ae uh cirno and poweritem -> item 2011-04-29 10:26:37 +02:00
laochailan
3f2885e185 fix: memleaks
there were some memleaks I left out of laziness. fixed.
2011-04-26 22:39:50 +02:00
laochailan
72286b4529 projectile coloring by shader 2011-04-26 16:55:18 +02:00
laochailan
bdc0db9957 merged Slave and Fairy to Enemy
To create a slave, pass ENEMY_IMMUNE for hp in create_enemy(). tip: create_enemyg(...) is an abbreviation for create_enemy(&global.enemies, ...).
There is something like a super fancy event system for Enemies' logic rules now: logic_rule will be called with t = negative special values like EVENT_BIRTH or EVENT_DEATH on corresponding events. cool, isn't it? well those values have to be filtered out (like if(t < 0) return;) if you don't use them so they don't do strange things with your locus.
2011-04-26 12:04:45 +02:00
laochailan
d280d8c8ad laz0rs
added straight and curved types of lasers. I'm searching for a better way to render them though. also, renewal of Youmu's shot, inspired by th13.
2011-04-24 15:39:17 +02:00
laochailan
a22ff34511 slave clean up
improvements on the slave system. it's player dependent and unglobalized. slaves are controlled by two different kinds of rules: a draw rule and a logic rule. this is necessary because some slaves need special appearances like Myon and drawing is only possible in stage_draw(). this also makes them configurable enough for different shot types and stuff.
2011-04-10 11:19:44 +02:00
laochailan
4583f592b6 Points and slaves
Another Sarrg commit implementing score, different items and alternative player shot modes. Some things need improvements, some don't. But this commit fixes a bug with bomb counting, which is I think enough reason to push it now.
2011-04-10 10:23:24 +02:00
laochailan
eec11529b1 marisa player texture
new player animation: marisa.
2011-04-02 13:06:18 +02:00
laochailan
88a77b3fb8 sound system added
load_textures() was changed to load_resources() and will now load all sounds in sfx/. playing via play_sound(char *name) (or the pointer variant). positional audio is not implemented yet.

and some other changes.
2011-04-02 12:14:37 +02:00
laochailan
0268449151 fixed recovery for death/bombs
player.recovery is now negative for death recovery times and positive for bomb recovery. abs(player.recovery) is the end frame of the recovery.
2011-03-29 15:55:46 +02:00
laochailan
24aaafa929 Lifes, Bombs and mighty Perspective
Another Sarrg-commit.
2011-03-23 12:26:30 +01:00
laochailan
ec85251571 dynamic texture loader
The static texture loading was replaced by a dynamic loader. Every png file in gfx/ is (recursively) loaded at the beginning and accessed via get_tex(name) or get_ani(name).name for "gfx/stage1/border.png" would be "stage1/border".

Sprite information is to be specified in the filename in the pattern: ani_${row count}_${col count}_${animation frequency}_${name}.png
2011-03-19 16:21:48 +01:00
laochailan
da36d2cd07 Power Items: Auto Collect
Items start approaching the player when they are on the top of the screen or close to them.
2011-03-19 09:11:05 +01:00
laochailan
a889515b2a Complex positions
Ever thought about abusing C1 as R2? I tried and it turned out to be very comfortable, especially when you realize that you can use massive imaginary power to move your rice. I also fixed various things on the way which I forgot. hm.
2011-03-18 19:03:06 +01:00
laochailan
48b42d42e6 memleak/crash on player shot fix
two fixes.
2011-03-07 13:41:10 +01:00
Lukas Weber
f35130ad1c openth becomes seiyou
After this short break, I have to announce that this project is no longer called openth. The name was stereotypical and conflicted with Open Theme Hospital. Thus, gentlemen, we are now working on Seiyou (西洋). Thanks to lachs0r for this wonderful suggestion.

Also the lincense has changed. Farewell, gnutardedness, hello MIT. I feel somehow relieved now after freeing the project of nearly one thousand lines.
2011-03-05 13:44:21 +01:00
Lukas Weber
efe53bb47b Bugfixes & more fancyness
Second commit today. Things from earlier were made even fancier and there are some minor bugfixes. Try focussing. :)
2010-11-28 12:54:13 +01:00
Lukas Weber
bdfceda7b9 Power! and fonts
I built some font support (new dependency: SDL_ttf). The Biolinum font of the Libertine project was included as the new ingame font.

Shot at fairies and you will get power. The system is pretty dumb currently, i guess i'll improve it somwhen. If you get a power level >= 2 you get a better shot. anyway, just testing. the player projectiles are somewhat uncomfortable to look at. to do.
2010-11-14 13:24:56 +01:00
Lukas Weber
3203fc754f new create_particle() syntax; drawing
- order of create_projectile() arguments changed to enable stating a variable amount of parameters depending on the movement rule. movement rules were generalized and could be used for fairies also in the future.

- drawing should be faster now. we have a frame limiter and clearer drawing code now (except of draw_projectiles() which was victim to an optimizing frenzy)
2010-10-24 14:44:48 +02:00
Lukas Weber
f5f844235b test danmaku
small danmaku showing the momentary possibilities of the system
2010-10-17 22:25:10 +02:00
Lukas Weber
5e3061a911 fairy collision
fairies are hit and hurt by player's projectiles. rampage risk for openth players raised by 200%
2010-10-17 10:39:07 +02:00
Lukas Weber
4cdadbc918 projectile collisions
player can be hit by projectiles now.
2010-10-17 09:27:44 +02:00
Lukas Weber
38fff7fc29 new textures + fix
- added rice, bigball and youmu textures.
- minor fix in projectile drawing.
2010-10-14 12:27:00 +02:00
Lukas Weber
8e3970f3ae texture-projectiles/texture improvements
- added reimplementation of texture-projectiles (drawing them with opengl primitives wasn't a good idea after all).

Note: projectile graphics now contain two versions of the projectile, look at gfx/projectiles/ball.png for example. the left version is the uncolored part and the right one is the colored part. I added a shell script building these projectile textures from the B and G channels of an image to make storing the sources in one piece easier (reference: gfx/projectiles/{render.sh,ball.svg}).

- some improvements on texture loading/drawing + a fancy error message, so it won't segault silently at that place again.
2010-10-13 12:38:38 +02:00
Lukas Weber
95c257064c first commit
yay, let's get things started.
2010-10-12 10:55:23 +02:00