Giter Club home page Giter Club logo

jurassic's People

Contributors

addisong avatar

Stargazers

 avatar

Watchers

 avatar  avatar

jurassic's Issues

Convert all GUI code and raw Jass into vJass and cJass

I cannot put code here if it's not code. Therefore, I'll need to convert some of my simpler triggers into Jass, so that I can save it here.

Additionally, I need to ensure a style guide is followed for my code. I'll give a rough outline below:

// Includes at top of file
include "file.j"

// Globals should be declared at the highest level trigger that uses them.
globals
    force PLAYERS = CreateForce()
    location MAP_CENTER = Location(16384, 16384)
endglobals

// Note the function declaration. Use 'void' instead of 'nothing'
void selectUnit() {
    // Do not include the (implicit) keyword 'local'
    location spawnpoint = MAP_CENTER

    // Do not include the (implicit) keyword 'call'
    CreateUnitAtLoc(GetEnumPlayer(), 'h000', spawnpoint, GetRandomReal(0, 360))
    // This is cJass - remember to make use of { }
    if (GetLocalPlayer() == GetEnumPlayer()) {
        ClearSelection()
        SelectUnit(bj_lastCreatedUnit, true)
    }
}

// Function comments should always be included, even if just simple ones.
/**
 * Adds one to the number provided, then doubles it.
 * I could have done this by typing: "++subject*2"
 */
int addOneAndDouble(int subject) {
    subject++
    subject *= 2
    return subject
}

Mechanic Speciality Class

The mechanic should be able to create vehicles that can transport the entire team to new bases. This is a critical element of the game, and should never be far from any players mind.

It is a boring game in which the mechanic builds fantastic machines whose only purpose is to sit idle behind turrets and walls. It is expected that even on the easiest difficulty, a complete relocation should have to happen once due to insufficient resources, and it is the mechanics responsibility to pack the other survivors, items, and even buildings up for the move.

The mechanic should, in their spare time, be using remote controlled robots to perform reconnaissance and other minor tasks. These tasks include:

  • Searching for dinosaur lairs to destroy or avoid.
  • Finding scattered items/supplies
  • Deploying items provided by other members (poachers traps, biologists lure, etc)

The mechanic is a partner to the engineer, and co-operation should be extra rewarding between them. This can be arranged by enabling the mechanic to provide permanent bonuses to engineer turrets, and being able to buy an upgrade which allows the transport of turrets, allowing the quick deployment of defences at a new location.

Implement Level Timers and Anger Timers

The variance of dinosaurs and other creatures spawning is the first factor that determines difficulty as time progresses, also known as dinosaur level. The second factor is the dinosaur anger, which increases dinosaur move-speed, attack-speed, and health regeneration.

The dinosaur level dictates the types of dinosaurs that are allowed to spawn. Level 0 dinosaurs are meant to be minor threats that keep survivors on their toes, but little more. Higher level dinosaurs will be major threats that may require a few players to take down.

Because there will be quite a big gap between the increasing of dinosaur levels (due to me not wanting to make 20 sets of dinosaurs for each level, so that difficulty scales nicely), there will be a second timer which increases the dinosaurs anger, every minute or so. This will just be a global aura, which affects all creatures.

Differentiate the four lands from each other

Each of the four lands should be different than the others, with bonuses and penalties. Additionally, there should be at least 2 creatures that are unique to the lands. This ensures that players can make themselves feel better by saying things like "I knew we should have gone to the X lands", and increases replayability.

The snow lands have an emphasis on frequent relocation (due to sparse trees), so naturally the mechanic is the most useful class. However, this shouldn't be a huge problem, as dinosaurs will be slow to chase, due to the fact that every living creature is slowed - survivors and dinosaurs alike, but vehicles are not. Survivors are able to place the 1x1 barricades for free, instead of for 1 lumber (which are replaced by packed snow walls). There should be far less insects, and a few more tanky creatures.

The mountain lands has an emphasis on defending your ground, and as such will have more larger, stronger dinosaurs (T-Rex, etc), and plenty of roaming dinosaurs. Buildings should gain extra armour and damage to compensate, increasing the value of engineers significantly.

The swamp lands has an emphasis on sprawling, open bases, which grow according to the demand for lumber. Survivors should not rely on static defences, but instead on mobile weapons. Poachers and biologists will be the most useful, as they can move to defend any area, and are able to make good use of an open base. There should be very few large creatures that would raze entire bases. Instead, packs of raptors and medium sized creatures should be the most common, along with plenty of fliers and insects.

The tropical lands is basically the neutral land. There is a small bonus to survivor movespeed and health regen, and there might even be a few mini "quests" or similar things to perform.

Create the dinosaurs

I need models for every dinosaur, and I need to give each of them realistic statistics and abilities.

For every level, there should be a:

  • Tank dino (e.g: Triceratops)
  • Agile dino (e.g: Velociraptor)
  • Flying creature (e.g: Pterodactyl)
  • Pesky creature (e.g: Flesh Flies)

After this, I need to make sure that they are correctly mapped, and have an appropriate chance of spawning at each level.

I'd also like to make an "-dinos" command, which gives info on the creatures that can currently spawn (DPS, effective HP, strengths, weaknesses)

Create the Survivor Specialties

Every class should stem from a single building, of which the survivor can only have one of. This building allows them to choose their speciality, by upgrading it into the correct type.

Survivors should be able to change specialities as much as they wish, but never multi-task.

Every specialist should have their own store upgrade, which allows the purchasing of several items unique to their store.

Engineer
Biologist
Poacher
Mechanic

Create Victory Conditions

The game should end after the duration has expired, but at some point this should be extended to be more than just a fade-to-black.

Ideally, once the time has expired, the survivors would have to make one final trip to a random location on the map (at least X units away), where they must perform some sort of evacuation. This could be a number of things, such as:

  • Get on an escape helicopter (Nice and simple to implement). Maybe they also have to repair it?
  • Once all surviving players gather at the evac, hold out for X minutes without leaving area (Bit harder)
  • Once at the evac point, escort a vehicle until it gets off the map (Very hard)

Showing statistics would also be nice, such as the players damage, kills, repairs/healing, income, and even a few awards, such as "Got the closest to death (4hp)" and "Went X minutes without doing Y"

Spawning and Movement Mechanics for Dinosaurs

Dinosaurs should spawn in numbers appropriate for both the difficulty and the number of players.

Any given (non-roaming) dinosaur should be assigned a player. It will always head in the general direction of the survivor, by attack-moving every several seconds to a point within a few hundred units of the middle of a line drawn between the survivor and the dinosaur. This ensures that the dinosaur is not heading in a straight line towards the survivor, but will always approach their location, even if they are left far behind on the map.

Care must be taken to ensure that dinosaurs do not lose their target if they enter a vehicle or building.

Expand

Possibilities:

  • A time-to-live value can be given to dinosaurs, if needed.
  • A movespeed bonus can be given to dinosaurs that are not within X range of any survivors.

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.