termfront 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +41 -0
  3. data/LICENSE +21 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +160 -0
  6. data/Rakefile +12 -0
  7. data/data/audio/THIRD_PARTY_NOTICES.md +45 -0
  8. data/data/audio/beep_02.ogg +0 -0
  9. data/data/audio/button1.ogg +0 -0
  10. data/data/audio/complete.ogg +0 -0
  11. data/data/audio/manifest.json +17 -0
  12. data/data/audio/mission_bgm.wav +0 -0
  13. data/data/audio/mission_clear_se.wav +0 -0
  14. data/data/audio/on.ogg +0 -0
  15. data/data/audio/page_se.wav +0 -0
  16. data/data/audio/sector.mp3 +0 -0
  17. data/data/audio/sfx_22b.ogg +0 -0
  18. data/data/audio/shield_alarm_se.wav +0 -0
  19. data/data/audio/shield_regen_se.wav +0 -0
  20. data/data/audio/shoot_01.ogg +0 -0
  21. data/data/audio/terminal_se.wav +0 -0
  22. data/data/audio/title.mp3 +0 -0
  23. data/data/audio/title_bgm.wav +0 -0
  24. data/data/audio/victory.mp3 +0 -0
  25. data/data/events/corridor_sweep.json +27 -0
  26. data/data/events/final_push.json +40 -0
  27. data/data/events/stronghold.json +27 -0
  28. data/data/events/the_gauntlet.json +27 -0
  29. data/data/events/training_grounds.json +31 -0
  30. data/exe/termfront +6 -0
  31. data/exe/termfront-server +7 -0
  32. data/lib/termfront/audio_manager.rb +225 -0
  33. data/lib/termfront/config.rb +38 -0
  34. data/lib/termfront/demo_player.rb +181 -0
  35. data/lib/termfront/drop_item/base.rb +26 -0
  36. data/lib/termfront/drop_item/weapon.rb +38 -0
  37. data/lib/termfront/enemy/base.rb +133 -0
  38. data/lib/termfront/enemy/crawler.rb +18 -0
  39. data/lib/termfront/enemy/executor.rb +18 -0
  40. data/lib/termfront/game.rb +637 -0
  41. data/lib/termfront/input.rb +75 -0
  42. data/lib/termfront/map.rb +72 -0
  43. data/lib/termfront/mission/base.rb +81 -0
  44. data/lib/termfront/mission/corridor_sweep.rb +41 -0
  45. data/lib/termfront/mission/event_loader.rb +87 -0
  46. data/lib/termfront/mission/event_runtime.rb +37 -0
  47. data/lib/termfront/mission/final_push.rb +44 -0
  48. data/lib/termfront/mission/stronghold.rb +45 -0
  49. data/lib/termfront/mission/the_gauntlet.rb +38 -0
  50. data/lib/termfront/mission/training.rb +38 -0
  51. data/lib/termfront/mission/training_grounds.rb +37 -0
  52. data/lib/termfront/network/client.rb +865 -0
  53. data/lib/termfront/network/connection.rb +101 -0
  54. data/lib/termfront/network/server.rb +620 -0
  55. data/lib/termfront/network/wavesfight_client.rb +364 -0
  56. data/lib/termfront/opponent.rb +24 -0
  57. data/lib/termfront/player.rb +147 -0
  58. data/lib/termfront/projectile.rb +44 -0
  59. data/lib/termfront/remote_enemy.rb +21 -0
  60. data/lib/termfront/renderer.rb +707 -0
  61. data/lib/termfront/scene_player.rb +164 -0
  62. data/lib/termfront/sprite.rb +73 -0
  63. data/lib/termfront/terminal_output.rb +63 -0
  64. data/lib/termfront/title_screen.rb +299 -0
  65. data/lib/termfront/version.rb +5 -0
  66. data/lib/termfront/weapon/assault_rifle.rb +15 -0
  67. data/lib/termfront/weapon/base.rb +44 -0
  68. data/lib/termfront/weapon/pistol.rb +15 -0
  69. data/lib/termfront/weapon/shock_pistol.rb +15 -0
  70. data/lib/termfront/weapon/shock_rifle.rb +15 -0
  71. data/lib/termfront.rb +51 -0
  72. data/sig/termfront.rbs +4 -0
  73. metadata +119 -0
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Termfront
4
+ module Weapon
5
+ class ShockRifle < Base
6
+ def name = "S.Rifle"
7
+ def max_ammo = 100
8
+ def cooldown = 0.15
9
+ def hit_width = 0.5
10
+ def type_id = :shock_rifle
11
+ end
12
+
13
+ Base.register(:shock_rifle, ShockRifle)
14
+ end
15
+ end
data/lib/termfront.rb ADDED
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "io/console"
4
+
5
+ require_relative "termfront/version"
6
+ require_relative "termfront/config"
7
+ require_relative "termfront/map"
8
+ require_relative "termfront/weapon/base"
9
+ require_relative "termfront/weapon/pistol"
10
+ require_relative "termfront/weapon/assault_rifle"
11
+ require_relative "termfront/weapon/shock_rifle"
12
+ require_relative "termfront/weapon/shock_pistol"
13
+ require_relative "termfront/drop_item/base"
14
+ require_relative "termfront/drop_item/weapon"
15
+ require_relative "termfront/enemy/base"
16
+ require_relative "termfront/enemy/crawler"
17
+ require_relative "termfront/enemy/executor"
18
+ require_relative "termfront/projectile"
19
+ require_relative "termfront/player"
20
+ require_relative "termfront/audio_manager"
21
+ require_relative "termfront/mission/base"
22
+ require_relative "termfront/mission/event_loader"
23
+ require_relative "termfront/mission/event_runtime"
24
+ require_relative "termfront/mission/training"
25
+ require_relative "termfront/mission/training_grounds"
26
+ require_relative "termfront/mission/corridor_sweep"
27
+ require_relative "termfront/mission/the_gauntlet"
28
+ require_relative "termfront/mission/stronghold"
29
+ require_relative "termfront/mission/final_push"
30
+ require_relative "termfront/opponent"
31
+ require_relative "termfront/remote_enemy"
32
+ require_relative "termfront/sprite"
33
+ require_relative "termfront/input"
34
+ require_relative "termfront/terminal_output"
35
+ require_relative "termfront/renderer"
36
+ require_relative "termfront/demo_player"
37
+ require_relative "termfront/scene_player"
38
+ require_relative "termfront/title_screen"
39
+ require_relative "termfront/game"
40
+ require_relative "termfront/network/connection"
41
+ require_relative "termfront/network/client"
42
+ require_relative "termfront/network/wavesfight_client"
43
+ require_relative "termfront/network/server"
44
+
45
+ module Termfront
46
+ class Error < StandardError; end
47
+
48
+ def self.start
49
+ Game.new.start
50
+ end
51
+ end
data/sig/termfront.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Termfront
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: termfront
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - S-H-GAMELINKS
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: "A terminal-based first-person shooter with DDA raycasting, campaign mode, and PvP multiplayer."
13
+ email:
14
+ - gamelinks007@gmail.com
15
+ executables:
16
+ - termfront
17
+ - termfront-server
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - CHANGELOG.md
22
+ - LICENSE
23
+ - LICENSE.txt
24
+ - README.md
25
+ - Rakefile
26
+ - data/audio/THIRD_PARTY_NOTICES.md
27
+ - data/audio/beep_02.ogg
28
+ - data/audio/button1.ogg
29
+ - data/audio/complete.ogg
30
+ - data/audio/manifest.json
31
+ - data/audio/mission_bgm.wav
32
+ - data/audio/mission_clear_se.wav
33
+ - data/audio/on.ogg
34
+ - data/audio/page_se.wav
35
+ - data/audio/sector.mp3
36
+ - data/audio/sfx_22b.ogg
37
+ - data/audio/shield_alarm_se.wav
38
+ - data/audio/shield_regen_se.wav
39
+ - data/audio/shoot_01.ogg
40
+ - data/audio/terminal_se.wav
41
+ - data/audio/title.mp3
42
+ - data/audio/title_bgm.wav
43
+ - data/audio/victory.mp3
44
+ - data/events/corridor_sweep.json
45
+ - data/events/final_push.json
46
+ - data/events/stronghold.json
47
+ - data/events/the_gauntlet.json
48
+ - data/events/training_grounds.json
49
+ - exe/termfront
50
+ - exe/termfront-server
51
+ - lib/termfront.rb
52
+ - lib/termfront/audio_manager.rb
53
+ - lib/termfront/config.rb
54
+ - lib/termfront/demo_player.rb
55
+ - lib/termfront/drop_item/base.rb
56
+ - lib/termfront/drop_item/weapon.rb
57
+ - lib/termfront/enemy/base.rb
58
+ - lib/termfront/enemy/crawler.rb
59
+ - lib/termfront/enemy/executor.rb
60
+ - lib/termfront/game.rb
61
+ - lib/termfront/input.rb
62
+ - lib/termfront/map.rb
63
+ - lib/termfront/mission/base.rb
64
+ - lib/termfront/mission/corridor_sweep.rb
65
+ - lib/termfront/mission/event_loader.rb
66
+ - lib/termfront/mission/event_runtime.rb
67
+ - lib/termfront/mission/final_push.rb
68
+ - lib/termfront/mission/stronghold.rb
69
+ - lib/termfront/mission/the_gauntlet.rb
70
+ - lib/termfront/mission/training.rb
71
+ - lib/termfront/mission/training_grounds.rb
72
+ - lib/termfront/network/client.rb
73
+ - lib/termfront/network/connection.rb
74
+ - lib/termfront/network/server.rb
75
+ - lib/termfront/network/wavesfight_client.rb
76
+ - lib/termfront/opponent.rb
77
+ - lib/termfront/player.rb
78
+ - lib/termfront/projectile.rb
79
+ - lib/termfront/remote_enemy.rb
80
+ - lib/termfront/renderer.rb
81
+ - lib/termfront/scene_player.rb
82
+ - lib/termfront/sprite.rb
83
+ - lib/termfront/terminal_output.rb
84
+ - lib/termfront/title_screen.rb
85
+ - lib/termfront/version.rb
86
+ - lib/termfront/weapon/assault_rifle.rb
87
+ - lib/termfront/weapon/base.rb
88
+ - lib/termfront/weapon/pistol.rb
89
+ - lib/termfront/weapon/shock_pistol.rb
90
+ - lib/termfront/weapon/shock_rifle.rb
91
+ - sig/termfront.rbs
92
+ homepage: "https://github.com/S-H-GAMELINKS/termfront"
93
+ licenses:
94
+ - MIT
95
+ metadata:
96
+ allowed_push_host: "https://rubygems.org"
97
+ homepage_uri: "https://github.com/S-H-GAMELINKS/termfront"
98
+ source_code_uri: "https://github.com/S-H-GAMELINKS/termfront"
99
+ changelog_uri: "https://github.com/S-H-GAMELINKS/termfront/blob/main/CHANGELOG.md"
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ -
106
+ - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 3.2.0
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ -
112
+ - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: "0"
115
+ requirements: []
116
+ rubygems_version: 4.1.0.dev
117
+ specification_version: 4
118
+ summary: Terminal FPS game with raycasting engine
119
+ test_files: []