Giter Site home page Giter Site logo

ggeorgovassilis / superstartrek Goto Github PK

View Code? Open in Web Editor NEW
31.0 2.0 1.0 32.58 MB

The 70s Super Star Trek command line game revived as an HTML 5 app

License: Apache License 2.0

JavaScript 32.72% CSS 5.91% HTML 4.42% Java 56.95% Shell 0.01%
javascript html game mobile startrek

superstartrek's People

Contributors

ggeorgovassilis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

superstartrek's Issues

Klingon damage model

Klingon raiders should also implement a damage model:

  • impulse drive should sustain damage and immobilise raiders
  • disruptors should sustain damage and become inoperational
  • if a raider is not destroyed before Enterprise leaves the sector, then the raider is repaired

Energy budget for starship

The core reactor's energy output reactor should dictate "rounds" instead of a fixed amount of moves. The way to do it:

  1. Define energy output (energy/time) for ship reactor. That is the round's budget.
  2. Every action consumes energy by reducing the available budget.
  3. Only actions are possible which consume less than the remaining budget

Some implications are:

  • It's possible to perform multiple actions in the same round (i.e. fire phasers twice, fire phasers and move, all of that + torpedos)
  • Shields consume budget, hence keeping shields high reduces firepower and maneuverability

Losing the game

  1. Losing the game should trigger a technical, semantic event
  2. It should not be possible to play the game anymore after it was lost. Only the option to restart it should be available

Crew combat

Crew should be another scalar property which suffers damage from enemy fire. Low values impede the ship's operations. Crew can be replenished at star bases. When shields are low (eg. < 10%), Klingons should beam over from nearby raiders, killing crew.

Raiders should suffer penalties when losing crew due to failed boarding attempts.

Repairs at starbase

When docking at a federation starbase options should be given to:

  • refuel energy
  • stock on photon torpedos
  • conduct repairs

which require an appropriate number of turns

Pre load SVG

even with the pwa primed, there is a noticeable flicker when icons are viewed for the first time.

Winning condition

Upon destruction of the last raider the game should terminate with a winning message

update check fails

  1. button should be disabled while checking
  2. show error message of update check fails

fix srs

srs doesn't colour Klingon quadrants correctly of they have just been explored

More nuanced star map

Most sectors are boring; make sure sectors have personalities:

  • empty sectors with few or no stars
  • sectors with many stars
  • star bases with few stars
  • klingons form swarms

update app menu

App menu should include "check for updates". Disable auto update check

About screen

About & credits screen:

  • title
  • version
  • URL
  • author
  • libraries
  • licences

LRS click nowhere

steps: LRS, click on a sector title (e.g. capella) instead of a sector. This will show a blank page with hash #undefined.

Detect collision during navigation

Current behavior:
When navigating inside a quadrant it is possible to move over or onto sector which contains already an object (star, starbase, enemy ship).

Expected behavior:
Movement should cease in front of the object obstructing movement in the direction of movement

Implement near range scan

Implement near range scan that shows overview (enemy raiders / federation starbases / stars) of neighboring quadrants

Klingon swarms

currently Klingons are placed randomly into a quadrant. the generator should create swarms of defined strength and composition.

adjust reactor output

#42 reduced base consumption, which leaves enough reactor output to always warp and travel at full speed, even when phasers were fired.

AI for enemy ships

Implement AI for enemy raiders:

  • Raider fires at us on sight
  • Raider positions itself if it has no clear line of fire

Implement damage model

Implement damage system for our starship. Damage is caused:

  • randomly
  • as a result of enemy fire
  • by nearby explosions (when firing on enemy raiders or accidentally hitting a starbase)

Afflicted damage affects:

  • quadrant overview
  • short range scan
  • long range scan
  • navigation
  • warp drives
  • shields
  • computer
  • photon torpedos
  • energy reserves

Highscore

Compute a score out of klingons neutralised divided by time.

Smarter PWA caching

The local cache competes with regular resource loading, often downloading resources twice (once for the app and once into the cache). This ticket implements a conditional sequence:

  1. defer application initialisation
  2. feature-detect if caching and service workers are supported
  3. if (2) true, initialise cache and continue deferred application initialisation
  4. if (2) not true then immediately continue deferred application initialisation

Minor repairs while moving

During warp travel and navigation (even in battle), minor repairs could take place. These repairs don't reduce score.

Remember state

When the browser is closed, the current state should be saved. When the web page is opened again, the saved state should be restored.

Phasers balancing

Current behavior: when shooting a raider out of immediate vicinity with low-intensity phasers the raider blows up.
Expected behavior: since low-intensity phasers are 25 energy units and a raider has 100 HP, only light damage should be inflicted

Opportunistic saving

currently the game progress is saved at the beginning of each turn. saving should be offloaded to a timer that checks flags and saves only when the game is idle

Implement round count

A round indicator for rounds (stardays) that have passed and the remaining amount of rounds. The following actions consume rounds:

  • navigation inside a quadrant
  • warping between quadrants
  • firing weapons
  • docking to a federation starbase

Better status indicator

The status report button currently shows remaining antimatter. It should show a composite "health score", consisting of antimatter reserves, engine health and reactor capacity.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.