FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaScript-II/src/prototype.js at master · FJF616/JavaScript-II · GitHub
FJF616
/
JavaScript-II
Public
forked from
bloominstituteoftechnology/JavaScript-II-Stretch-Assignment
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaScript-II
/
src
/
prototype.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
106 lines (93 loc) · 2.87 KB
Breadcrumbs
JavaScript-II
/
src
/
prototype.js
Copy path
File metadata and controls
106 lines (93 loc) · 2.87 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
Object oriented design is commonly used in video games. For this part of the assignment
you will be implementing several classes with their correct inheritance heirarchy.
In this file you will be creating three classes:
GameObject
createdAt
dimensions
destroy() // prototype method -> returns the string 'Game object was removed from the game.'
NPC
hp
name
takeDamage() // prototype method -> returns the string '<object name> took damage.'
// should inherit destroy() from GameObject's prototype
Humanoid
faction
weapons
language
greet() // prototype method -> returns the string '<object name> offers a greeting in <object language>.'
// should inherit destroy() from GameObject through NPC
// should inherit takeDamage() from NPC
Inheritance chain: Humanoid -> NPC -> GameObject
Instances of Humanoid should have all of the same properties as NPC and GameObject.
Instances of NPC should have all of the same properties as GameObject.
Example:
const hamsterHuey = new Humanoid({
createdAt: new Date(),
dimensions: {
length: 2,
width: 1,
height: 1,
},
hp: 5,
name: 'Hamster Huey',
faction: 'Gooey Kablooie',
weapons: [
'bubblegum',
],
language: 'Hamsterish',
});
hamsterHuey.greet(); // returns 'Hamster Huey offers a greeting in Hamsterish'
hamsterHuey.takeDamage(); // returns 'Hamster Huey took damage.'
hamsterHuey.destroy(); // returns 'Game object was removed from the game.'
*/
function
GameObject
(
options
)
{
this
.
createdAt
=
options
.
createdAt
;
this
.
dimensions
=
options
.
dimensions
;
}
GameObject
.
prototype
.
destroy
=
function
gameMessage
(
options
)
{
return
(
'Game object was removed from the game.'
)
;
}
;
function
NPC
(
options
)
{
GameObject
.
call
(
this
,
options
)
;
this
.
hp
=
options
.
hp
;
this
.
name
=
options
.
name
;
}
NPC
.
prototype
=
Object
.
create
(
GameObject
.
prototype
)
;
NPC
.
prototype
.
takeDamage
=
function
damageMessage
(
options
)
{
return
(
`
${
this
.
name
}
took damage.`
)
;
}
;
function
Humanoid
(
options
)
{
NPC
.
call
(
this
,
options
)
;
this
.
faction
=
options
.
faction
;
this
.
language
=
options
.
language
;
this
.
weapons
=
options
.
weapons
;
}
Humanoid
.
prototype
=
Object
.
create
(
NPC
.
prototype
)
;
Humanoid
.
prototype
.
greet
=
function
greetMessage
(
options
)
{
return
(
`
${
this
.
name
}
offers a greeting in
${
this
.
language
}
.`
)
;
}
;
const
hamsterHuey
=
new
Humanoid
(
{
createdAt
:
new
Date
(
)
,
dimensions
:
{
length
:
2
,
width
:
1
,
height
:
1
,
}
,
hp
:
5
,
name
:
'Hamster Huey'
,
faction
:
'Gooey Kablooie'
,
weapons
:
[
'bubblegum'
,
]
,
language
:
'Hamsterish'
,
}
)
;
hamsterHuey
.
greet
(
)
;
// returns 'Hamster Huey offers a greeting in Hamsterish'
hamsterHuey
.
takeDamage
(
)
;
// returns 'Hamster Huey took damage.'
hamsterHuey
.
destroy
(
)
;
// returns 'Game object was removed from the game.'
/* eslint-disable no-undef */
module
.
exports
=
{
GameObject
,
NPC
,
Humanoid
,
}
;
Back
|
FazBrowse Home
|
New Git URL