Skip to content

Commit

Permalink
Merge 5c7de7e into 7dbb6a6
Browse files Browse the repository at this point in the history
  • Loading branch information
seeratsekhon committed Jul 21, 2018
2 parents 7dbb6a6 + 5c7de7e commit 408f395
Show file tree
Hide file tree
Showing 7 changed files with 315 additions and 21 deletions.
15 changes: 9 additions & 6 deletions client/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,21 @@ export default class App extends React.Component {
}

// spawn player on submit
spawnPlayer(inputName) {
this.sendSpawnMessage(inputName);
this.state.player.name = inputName;
spawnPlayer(name, country) {
this.sendSpawnMessage(name, country);
this.state.player.name = name;
this.state.player.country = country;
this.setState({
showWelcomeModal: false,
showMiniMap: true,
player: this.state.player,
});
}

sendSpawnMessage(inputName) {
sendSpawnMessage(name, country) {
const spawnMessage = {
name: inputName,
name,
country,
};
const message = {
type: 'spawn',
Expand Down Expand Up @@ -288,7 +290,8 @@ export default class App extends React.Component {
this.state.showWelcomeModal &&
<WelcomeModal
name={this.state.player.name}
onSubmit={e => this.spawnPlayer(e)}
country={this.state.player.country}
onSubmit={(inputName, country) => this.spawnPlayer(inputName, country)}
/>
}
{
Expand Down
50 changes: 40 additions & 10 deletions client/components/WelcomeModal.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
import React from 'react';
import { Modal, Button } from 'react-bootstrap';
import { Modal, Button, FormControl, FormGroup, ControlLabel } from 'react-bootstrap';
import countries from '../data/countries.json';

const listOfCountries = [];

class WelcomeModal extends React.Component {
constructor(props) {
super(props);
this.state = {
inputName: props.name,
country: props.country,
};

this.handleChange = this.handleChange.bind(this);
this.handleSelect = this.handleSelect.bind(this);
}

componentWillMount() {
if (listOfCountries.length === 0) {
Object.keys(countries).forEach((key) => {
listOfCountries.push(<option value={countries[key]} key={key}>{countries[key]}
{key.toUpperCase().replace(/./g, char => String.fromCodePoint(char.charCodeAt(0) + 127397))}
</option>);
});
}
}

componentDidMount() {
Expand All @@ -22,6 +37,10 @@ class WelcomeModal extends React.Component {
this.setState({ inputName: e.target.value });
}

handleSelect(e) {
this.setState({ country: e.target.value });
}

render() {
return (
<div style={styles.backdrop}>
Expand All @@ -33,20 +52,31 @@ class WelcomeModal extends React.Component {
<Modal.Body>
<h5 align="left"> Instructions: </h5>
<p align="left"> Navigate your rocketship around space using your keyboard arrow keys. Bump space junk and other players into the black holes to earn points! But make sure to watch out for the black holes yourself or youll get sucked in!</p>
<div>
Enter name:
<input
type="text"
value={this.state.inputName}
onChange={this.handleChange}
/>
</div>

<form>
<FormGroup controlId="formBasicText">
<ControlLabel> Name</ControlLabel>
<FormControl
type="text"
value={this.state.inputName}
onChange={this.handleChange}
/>
</FormGroup>
<FormGroup controlId="formControlsSelect">
<ControlLabel> Country</ControlLabel>

<FormControl componentClass="select" value={this.state.country} onChange={this.handleSelect}>
<option value="None" key="None">None</option>
{listOfCountries}
</FormControl>
</FormGroup>
</form>
</Modal.Body>
<Modal.Footer>
<Button
bsStyle="primary"
id="btn"
onClick={() => this.props.onSubmit(this.state.inputName)}
onClick={() => this.props.onSubmit(this.state.inputName, this.state.country)}
>
Start Bumping!
</Button>
Expand Down
258 changes: 258 additions & 0 deletions client/data/countries.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
{
"AD": "Andorra",
"AE": "United Arab Emirates",
"AF": "Afghanistan",
"AG": "Antigua and Barbuda",
"AI": "Anguilla",
"AL": "Albania",
"AM": "Armenia",
"AN": "Netherlands Antilles",
"AO": "Angola",
"AQ": "Antarctica",
"AR": "Argentina",
"AS": "American Samoa",
"AT": "Austria",
"AU": "Australia",
"AW": "Aruba",
"AX": "\u00c5land Islands",
"AZ": "Azerbaijan",
"BA": "Bosnia and Herzegovina",
"BB": "Barbados",
"BD": "Bangladesh",
"BE": "Belgium",
"BF": "Burkina Faso",
"BG": "Bulgaria",
"BH": "Bahrain",
"BI": "Burundi",
"BJ": "Benin",
"BL": "Saint Barthélemy",
"BM": "Bermuda",
"BN": "Brunei Darussalam",
"BO": "Bolivia, Plurinational State of",
"BQ": "Caribbean Netherlands",
"BR": "Brazil",
"BS": "Bahamas",
"BT": "Bhutan",
"BV": "Bouvet Island",
"BW": "Botswana",
"BY": "Belarus",
"BZ": "Belize",
"CA": "Canada",
"CC": "Cocos (Keeling) Islands",
"CD": "Congo, the Democratic Republic of the",
"CF": "Central African Republic",
"CG": "Congo",
"CH": "Switzerland",
"CI": "C\u00f4te d'Ivoire",
"CK": "Cook Islands",
"CL": "Chile",
"CM": "Cameroon",
"CN": "China",
"CO": "Colombia",
"CR": "Costa Rica",
"CU": "Cuba",
"CV": "Cape Verde",
"CW": "Cura\u00e7ao",
"CX": "Christmas Island",
"CY": "Cyprus",
"CZ": "Czech Republic",
"DE": "Germany",
"DJ": "Djibouti",
"DK": "Denmark",
"DM": "Dominica",
"DO": "Dominican Republic",
"DZ": "Algeria",
"EC": "Ecuador",
"EE": "Estonia",
"EG": "Egypt",
"EH": "Western Sahara",
"ER": "Eritrea",
"ES": "Spain",
"ET": "Ethiopia",
"EU": "Europe",
"FI": "Finland",
"FJ": "Fiji",
"FK": "Falkland Islands (Malvinas)",
"FM": "Micronesia, Federated States of",
"FO": "Faroe Islands",
"FR": "France",
"GA": "Gabon",
"GB-ENG": "England",
"GB-NIR": "Northern Ireland",
"GB-SCT": "Scotland",
"GB-WLS": "Wales",
"GB": "United Kingdom",
"GD": "Grenada",
"GE": "Georgia",
"GF": "French Guiana",
"GG": "Guernsey",
"GH": "Ghana",
"GI": "Gibraltar",
"GL": "Greenland",
"GM": "Gambia",
"GN": "Guinea",
"GP": "Guadeloupe",
"GQ": "Equatorial Guinea",
"GR": "Greece",
"GS": "South Georgia and the South Sandwich Islands",
"GT": "Guatemala",
"GU": "Guam",
"GW": "Guinea-Bissau",
"GY": "Guyana",
"HK": "Hong Kong",
"HM": "Heard Island and McDonald Islands",
"HN": "Honduras",
"HR": "Croatia",
"HT": "Haiti",
"HU": "Hungary",
"ID": "Indonesia",
"IE": "Ireland",
"IL": "Israel",
"IM": "Isle of Man",
"IN": "India",
"IO": "British Indian Ocean Territory",
"IQ": "Iraq",
"IR": "Iran, Islamic Republic of",
"IS": "Iceland",
"IT": "Italy",
"JE": "Jersey",
"JM": "Jamaica",
"JO": "Jordan",
"JP": "Japan",
"KE": "Kenya",
"KG": "Kyrgyzstan",
"KH": "Cambodia",
"KI": "Kiribati",
"KM": "Comoros",
"KN": "Saint Kitts and Nevis",
"KP": "Korea, Democratic People's Republic of",
"KR": "Korea, Republic of",
"KW": "Kuwait",
"KY": "Cayman Islands",
"KZ": "Kazakhstan",
"LA": "Lao People's Democratic Republic",
"LB": "Lebanon",
"LC": "Saint Lucia",
"LI": "Liechtenstein",
"LK": "Sri Lanka",
"LR": "Liberia",
"LS": "Lesotho",
"LT": "Lithuania",
"LU": "Luxembourg",
"LV": "Latvia",
"LY": "Libya",
"MA": "Morocco",
"MC": "Monaco",
"MD": "Moldova, Republic of",
"ME": "Montenegro",
"MF": "Saint Martin",
"MG": "Madagascar",
"MH": "Marshall Islands",
"MK": "Macedonia, the former Yugoslav Republic of",
"ML": "Mali",
"MM": "Myanmar",
"MN": "Mongolia",
"MO": "Macao",
"MP": "Northern Mariana Islands",
"MQ": "Martinique",
"MR": "Mauritania",
"MS": "Montserrat",
"MT": "Malta",
"MU": "Mauritius",
"MV": "Maldives",
"MW": "Malawi",
"MX": "Mexico",
"MY": "Malaysia",
"MZ": "Mozambique",
"NA": "Namibia",
"NC": "New Caledonia",
"NE": "Niger",
"NF": "Norfolk Island",
"NG": "Nigeria",
"NI": "Nicaragua",
"NL": "Netherlands",
"NO": "Norway",
"NP": "Nepal",
"NR": "Nauru",
"NU": "Niue",
"NZ": "New Zealand",
"OM": "Oman",
"PA": "Panama",
"PE": "Peru",
"PF": "French Polynesia",
"PG": "Papua New Guinea",
"PH": "Philippines",
"PK": "Pakistan",
"PL": "Poland",
"PM": "Saint Pierre and Miquelon",
"PN": "Pitcairn",
"PR": "Puerto Rico",
"PS": "Palestine",
"PT": "Portugal",
"PW": "Palau",
"PY": "Paraguay",
"QA": "Qatar",
"RE": "Réunion",
"RO": "Romania",
"RS": "Serbia",
"RU": "Russian Federation",
"RW": "Rwanda",
"SA": "Saudi Arabia",
"SB": "Solomon Islands",
"SC": "Seychelles",
"SD": "Sudan",
"SE": "Sweden",
"SG": "Singapore",
"SH": "Saint Helena, Ascension and Tristan da Cunha",
"SI": "Slovenia",
"SJ": "Svalbard and Jan Mayen Islands",
"SK": "Slovakia",
"SL": "Sierra Leone",
"SM": "San Marino",
"SN": "Senegal",
"SO": "Somalia",
"SR": "Suriname",
"SS": "South Sudan",
"ST": "Sao Tome and Principe",
"SV": "El Salvador",
"SX": "Sint Maarten (Dutch part)",
"SY": "Syrian Arab Republic",
"SZ": "Swaziland",
"TC": "Turks and Caicos Islands",
"TD": "Chad",
"TF": "French Southern Territories",
"TG": "Togo",
"TH": "Thailand",
"TJ": "Tajikistan",
"TK": "Tokelau",
"TL": "Timor-Leste",
"TM": "Turkmenistan",
"TN": "Tunisia",
"TO": "Tonga",
"TR": "Turkey",
"TT": "Trinidad and Tobago",
"TV": "Tuvalu",
"TW": "Taiwan",
"TZ": "Tanzania, United Republic of",
"UA": "Ukraine",
"UG": "Uganda",
"UM": "US Minor Outlying Islands",
"US": "United States",
"UY": "Uruguay",
"UZ": "Uzbekistan",
"VA": "Holy See (Vatican City State)",
"VC": "Saint Vincent and the Grenadines",
"VE": "Venezuela, Bolivarian Republic of",
"VG": "Virgin Islands, British",
"VI": "Virgin Islands, U.S.",
"VN": "Viet Nam",
"VU": "Vanuatu",
"WF": "Wallis and Futuna Islands",
"XK": "Kosovo",
"WS": "Samoa",
"YE": "Yemen",
"YT": "Mayotte",
"ZA": "South Africa",
"ZM": "Zambia",
"ZW": "Zimbabwe"
}
3 changes: 2 additions & 1 deletion server/arena/arena.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,11 @@ func (a *Arena) AddPlayer(id string, ws *websocket.Conn) error {

// SpawnPlayer spawns the player with a position on the map
// TODO choose color here as well
func (a *Arena) SpawnPlayer(id string, name string) error {
func (a *Arena) SpawnPlayer(id string, name string, country string) error {
position := a.generateCoordinate(models.PlayerRadius)
a.Players[id].Position = position
a.Players[id].Name = name
a.Players[id].Country = country
return nil
}

Expand Down
Loading

0 comments on commit 408f395

Please sign in to comment.