1
1
$ ( ".debug" ) . hide ( ) ;
2
2
let playerHp = 100 ;
3
- let enemyHp = 140 ;
3
+ let enemyHp = 160 ;
4
+ let playerMaxHp = 100 ;
5
+ let enemyMaxHp = 160 ;
4
6
let playerExtraDmg = 1 ;
5
7
let enemyExtraDmg = 1.1 ;
6
- let moveNames = [ ]
7
- let isntFirefox = typeof InstallTrigger === 'undefined' ;
8
- let isntSafari = / c o n s t r u c t o r / i. test ( window . HTMLElement ) || ( function ( p ) { return p . toString ( ) === "[object SafariRemoteNotification]" ; } ) ( ! window [ 'safari' ] || ( typeof safari !== 'undefined' && window [ 'safari' ] . pushNotification ) ) ;
9
- isntSafari = ! isntSafari
10
-
11
- if ( isntFirefox && isntSafari ) {
12
- alert ( "Please use Firefox/Safari or else the buttons commit die." )
13
- } else if ( ! isntFirefox ) {
14
- console . log ( "^^ that is because feature checking" )
15
- } ;
8
+ let moveNames = [ ] ;
9
+ let selectableMoves = [ ] ;
10
+ let movePool = [ ] ;
11
+ let movesChosen = 1 ;
12
+ let isFirefox = navigator . userAgent . match ( / f i r e f o x | f x i o s / i)
13
+ let isSafari = navigator . userAgent . match ( / s a f a r i / i) ;
14
+
15
+ if ( isFirefox || isSafari ) {
16
+ console . log ( "goob job" )
17
+ } else {
18
+ alert ( "Please use Firefox or Safari or else the buttons do the funny." )
19
+ }
20
+
16
21
console . log ( "yo hi snooper if somethings red tell me ok? also run playerHp = -2" )
17
22
18
23
let params = window . location . search ;
@@ -23,6 +28,7 @@ newHp = Number(newHp)
23
28
newDmg = Number ( newDmg )
24
29
if ( newHp ) {
25
30
enemyHp = newHp ;
31
+ enemyMaxHp = newHp ;
26
32
$ ( "#enemy-hp" ) . html ( newHp ) ;
27
33
} if ( newDmg ) {
28
34
enemyExtraDmg = newDmg ;
@@ -33,10 +39,17 @@ $('#button-2').prop("disabled", true);
33
39
$ ( '#button-3' ) . prop ( "disabled" , true ) ;
34
40
$ ( '#button-4' ) . prop ( "disabled" , true ) ;
35
41
42
+ function setupAi ( ) {
43
+ for ( i of Array ( 4 ) . keys ( ) ) {
44
+ let sNum = Math . random ( ) * selectableMoves . length ;
45
+ let sSelected = selectableMoves . splice ( Math . floor ( sNum ) , 1 ) [ 0 ]
46
+ movePool . push ( sSelected ) ;
47
+ }
48
+ }
49
+
36
50
function debug ( key ) {
37
- console . log ( 'run' )
38
51
if ( key . code === "F7" ) {
39
- console . log ( 'yes ' ) ;
52
+ console . log ( 'opened debug HAXOR :O ' ) ;
40
53
$ ( ".debug" ) . show ( ) ;
41
54
}
42
55
}
@@ -67,8 +80,8 @@ function display(top, bottom) {
67
80
}
68
81
69
82
function moveAi ( ) {
70
- let num = Math . random ( ) * moveNames . length ;
71
- let selected = moveNames [ Math . floor ( num ) ] ;
83
+ let num = Math . random ( ) * movePool . length ;
84
+ let selected = movePool [ Math . floor ( num ) ] ;
72
85
eval ( `${ selected } .useMove("enemy")` )
73
86
}
74
87
@@ -103,17 +116,43 @@ function handleWin() {
103
116
}
104
117
}
105
118
119
+ function evalUse ( name , user ) {
120
+ eval ( `${ name } .useMove("${ user } ")` )
121
+ }
122
+
106
123
class Move {
107
- constructor ( name , dmg , target , effect ) {
124
+ constructor ( name , dmg , target , effect , heal , codeName ) {
108
125
this . name = name ;
109
126
this . dmg = dmg ;
110
127
if ( target != "$D" ) {
111
128
this . target = target ;
112
129
this . effect = effect ;
113
130
}
114
- moveNames . push ( name . toLowerCase ( ) )
131
+ this . heal = heal ;
132
+ if ( heal >= 0 ) {
133
+ this . healType = "heal" ;
134
+ } else {
135
+ this . healType = "recoil" ;
136
+ } ;
137
+ this . codeName = codeName ;
138
+ moveNames . push ( codeName ) ;
139
+ selectableMoves = [ ...moveNames ]
140
+ this . addFunction = `${ codeName } .addToMoves()`
141
+ this . useFunction = `${ codeName } .useMove("player")`
142
+ $ ( "#moveSelector" ) . append ( `<button class="move" id="add-${ codeName } " onclick="${ this . addFunction } ">${ name } </button>` )
115
143
}
116
144
145
+ addToMoves ( ) {
146
+ $ ( `#button-${ movesChosen } ` ) . html ( this . name ) ;
147
+ $ ( `#button-${ movesChosen } ` ) . attr ( "onclick" , `${ this . useFunction } ` )
148
+ movesChosen += 1 ;
149
+ $ ( `#add-${ this . codeName } ` ) . remove ( ) ;
150
+ if ( movesChosen === 5 ) {
151
+ $ ( "#moveSelector" ) . remove ( ) ;
152
+ loop1 ( ) ;
153
+ }
154
+ }
155
+
117
156
useMove ( user ) {
118
157
switch ( user ) {
119
158
case "player" :
@@ -122,18 +161,24 @@ class Move {
122
161
randomDamageBoost += 0.9
123
162
pDamageDealt *= randomDamageBoost
124
163
enemyHp -= pDamageDealt ;
164
+ playerHp += this . heal * playerExtraDmg ;
165
+ playerHp = Math . min ( playerHp , playerMaxHp ) ;
125
166
if ( this . target === "user" ) {
126
167
playerExtraDmg += this . effect ;
127
168
} else if ( this . target === "enemy" ) {
128
169
enemyExtraDmg += this . effect ;
129
170
}
130
171
131
- if ( this . dmg != 0 ) {
172
+ if ( this . dmg != 0 && this . heal >= 0 ) {
132
173
display ( `You used ${ this . name } !` , `It dealt ${ Math . round ( pDamageDealt ) } damage.` )
133
174
} else if ( this . target === "user" ) {
134
175
display ( `You used ${ this . name } !` , `Your attack increased by ${ this . effect * 100 } %.` )
135
176
} else if ( this . target === "enemy" ) {
136
177
display ( `You used ${ this . name } !` , `The opponent's attack decreased by ${ this . effect * - 100 } %.` )
178
+ } else if ( this . heal > 0 ) {
179
+ display ( `You used ${ this . name } !` , `It brought your HP back up to ${ Math . round ( playerHp ) } .` )
180
+ } else if ( this . heal < 0 ) {
181
+ display ( `You use ${ this . name } !` , `It dealt ${ Math . round ( pDamageDealt ) } damage with ${ Math . round ( this . heal * playerExtraDmg * - 1 ) } recoil.` )
137
182
}
138
183
toggleButtons ( ) ;
139
184
setTimeout ( loop2 , 1500 )
@@ -144,18 +189,23 @@ class Move {
144
189
eRandomDamageBoost += 0.9
145
190
eDamageDealt *= eRandomDamageBoost
146
191
playerHp -= eDamageDealt ;
192
+ enemyHp += this . heal * enemyExtraDmg ;
193
+ enemyHp = Math . min ( enemyHp , enemyMaxHp ) ;
147
194
if ( this . target === "user" ) {
148
195
enemyExtraDmg += this . effect ;
149
196
} else if ( this . target === "enemy" ) {
150
197
playerExtraDmg += this . effect ;
151
198
}
152
-
153
- if ( this . dmg != 0 ) {
199
+ if ( this . dmg != 0 && this . heal >= 0 ) {
154
200
display ( `The opponent used ${ this . name } !` , `It dealt ${ Math . round ( eDamageDealt ) } damage.` )
155
201
} else if ( this . target === "user" ) {
156
202
display ( `The opponent used ${ this . name } !` , `The opponent's attack increased by ${ this . effect * 100 } %.` )
157
203
} else if ( this . target === "enemy" ) {
158
204
display ( `The opponent used used ${ this . name } !` , `Your attack decreased by ${ this . effect * - 100 } %.` )
205
+ } else if ( this . heal > 0 ) {
206
+ display ( `The opponent used ${ this . name } !` , `It brought its HP back up to ${ Math . round ( enemyHp ) } .` )
207
+ } else if ( this . heal < 0 ) {
208
+ display ( `The opponent used ${ this . name } !` , `It dealt ${ Math . round ( eDamageDealt ) } damage with ${ Math . round ( this . heal * enemyExtraDmg * - 1 ) } recoil.` )
159
209
}
160
210
161
211
break ;
@@ -165,11 +215,13 @@ class Move {
165
215
166
216
}
167
217
168
- let bonk = new Move ( "Bonk" , 40 , "$D" , 0 ) ;
169
- let stronkify = new Move ( "Stronkify" , 0 , "user" , 0.2 ) ;
170
- let belittle = new Move ( "Belittle" , 0 , "enemy" , - 0.15 ) ;
171
- let tickle = new Move ( "Tickle" , 10 , "$D" , 0 ) ;
172
- // Kalob was a special child
173
-
218
+ // let name = new Move("name", dmg, effectTarget, effectPower, heal, "codename")
219
+ let bonk = new Move ( "Bonk" , 40 , "$D" , 0 , 0 , "bonk" ) ;
220
+ let stronk = new Move ( "Stronkify" , 0 , "user" , 0.2 , 0 , "stronk" ) ;
221
+ let belittle = new Move ( "Belittle" , 0 , "enemy" , - 0.15 , 0 , "belittle" ) ;
222
+ let tickle = new Move ( "Tickle" , 10 , "enemy" , - 0.1 , 0 , "tickle" ) ;
223
+ let lick = new Move ( "Lick Wounds" , 0 , "$D" , 0 , 30 , "lick" ) ;
224
+ let hyperbonk = new Move ( "HYPERBONK" , 50 , "$D" , 0 , - 30 , "hyperbonk" )
225
+ // Kalob was a special child. He belittled people so they could not lick their wounds using a baseball bat to bonk them
174
226
document . addEventListener ( "keydown" , debug )
175
- setTimeout ( loop1 , 1000 )
227
+ setupAi ( )
0 commit comments