-
Notifications
You must be signed in to change notification settings - Fork 0
/
bee.html
243 lines (215 loc) Β· 9.25 KB
/
bee.html
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="description" content="Bee Hive Idle Game">
<meta name="keywords" content="HTML, CSS, JavaScript">
<meta name="author" content="https://github.com/armin-l/bee-game">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bee Hive Manager</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
}
#beeCount, #hiveCount, #honeyCount, #moneyCount, #salesCount {
font-size: 24px;
margin-bottom: 20px;
}
button {
font-size: 16px;
padding: 10px 20px;
margin: 10px;
}
input {
width: 60px;
}
#errorMessage {
display: none;
color: red;
border: 1px solid red;
padding: 10px;
width: 250px;
margin: 10px auto;
}
.container {
display: flex;
flex-wrap: wrap; /* Allow elements to wrap on smaller screens */
justify-content: space-around; /* Distribute elements evenly */
width: 80%; /* Set a maximum width for responsiveness */
margin: 10px auto;
}
.count-display,
.button-container,
.sub-container {
flex: 1; /* Make elements take up equal space */
text-align: center;
margin: 5px;
}
.count-display p {
font-size: 24px;
}
</style>
</head>
<body>
<h1>Bee Hive Manager</h1>
<p>Manage your bee hive and earn money!</p>
<div class="container">
<div class="count-display">
<p id="beeCount">Bees: π1</p>
<p id="hiveCount">Hives: π 1</p>
<p id="salesCount">Sales Team: π©βπΌ0</p>
</div>
<div class="count-display">
<p id="honeyCount">Honey: π―0</p>
<p id="moneyCount">Money: π²0</p>
</div>
</div>
<div id="errorMessage"></div>
<div class="container">
<div class="sub-container">
<button onclick="buyBee()">Buy Bee <br>(π²10)</button>
<input type="number" id="buyBeeCount" value="1">
</div>
<div class="sub-container">
<button onclick="sellHoney()">Sell Honey <br>(π²5)</button>
<input type="number" id="sellHoneyCount" value="1">
</div>
<div class="sub-container">
<button onclick="buyHive()">Buy Hive <br>(π²1K, π―1K)</button>
<input type="number" id="buyHiveCount" value="1">
</div>
<div class="sub-container">
<button onclick="buySales()">Sales Person <br>(π²10K)</button>
<input type="number" id="buySalesCount" value="1">
</div>
</div>
<script>
let beeCount = 1;
let hiveCount = 1;
let honeyCount = 0;
let moneyCount = 0;
let salesCount = 0;
function updateCounts() {
document.getElementById("beeCount").textContent = `Bees: π${beeCount}`;
document.getElementById("hiveCount").textContent = `Hives: π ${hiveCount}`;
document.getElementById("honeyCount").textContent = `Honey: π―${honeyCount}`;
document.getElementById("moneyCount").textContent = `Money: π²${moneyCount}`;
document.getElementById("salesCount").textContent = `Sales Team: π©βπΌ${salesCount}`;
}
function showErrorMessage(message) {
const errorMessageElement = document.getElementById("errorMessage");
errorMessageElement.textContent = message;
errorMessageElement.style.display = "block";
}
function hideErrorMessage() {
const errorMessageElement = document.getElementById("errorMessage");
errorMessageElement.textContent = "";
errorMessageElement.style.display = "none";
}
function buySales() {
const buySalesamount = parseInt(document.getElementById("buySalesCount").value);
if (moneyCount >= 10000 * buySalesamount) {
salesCount += buySalesamount;
moneyCount -= 10000 * buySalesamount;
updateCounts();
hideErrorMessage();
} else {
showErrorMessage("Not enough money to buy that many Sales People!");
}
}
function buyBee() {
const buyBeeamount = parseInt(document.getElementById("buyBeeCount").value);
if (moneyCount >= 10 * buyBeeamount) {
beeCount += buyBeeamount;
moneyCount -= 10 * buyBeeamount;
updateCounts();
hideErrorMessage();
} else {
showErrorMessage("Not enough money to buy that many bees!");
}
}
function sellHoney() {
const sellHoneyamount = parseInt(document.getElementById("sellHoneyCount").value);
if (honeyCount > 0 && honeyCount >= sellHoneyamount) {
moneyCount += 5 * sellHoneyamount;
honeyCount -= 1 * sellHoneyamount;
updateCounts();
hideErrorMessage();
} else {
showErrorMessage("You have no honey to sell!");
}
}
function buyHive() {
const buyHiveamount = parseInt(document.getElementById("buyHiveCount").value);
if (moneyCount >= 1000 * buyHiveamount && honeyCount >= 1000 * buyHiveamount) {
hiveCount += buyHiveamount;
moneyCount -= 1000 * buyHiveamount;
honeyCount -= 1000 * buyHiveamount;
updateCounts();
hideErrorMessage();
} else {
showErrorMessage("Not enough money and honey to buy that many hives!");
}
}
function getRandomEvent() {
const events = [
// Positive Events
{ message: "The queen bee lays a healthy batch of eggs! Bee population is significantly increased!", modifier: 0.3 },
{ message: "The bees discover a new nesting ground! Bee population is slightly increased.", modifier: 0.1 },
{ message: "Favorable weather conditions promote brood rearing. Bee population is minimally increased.", modifier: 0.05 },
{ message: "A new generation of worker bees emerges! Bee population is moderately increased.", modifier: 0.2 },
{ message: "The hive successfully swarms and establishes a new colony! Bee population is significantly increased.", modifier: 0.4 },
{ message: "A plentiful pollen source leads to increased brood rearing. Bee population is minimally increased.", modifier: 0.05 },
{ message: "The beekeeper adds a new feeder full of pollen substitute. Bee population is slightly increased.", modifier: 0.1 },
{ message: "A successful mite treatment eliminates Varroa infestation. Bee population recovers slightly.", modifier: 0.1 },
// Neutral Events
{ message: "A scout bee returns, unable to locate a new nectar source. No change in bee population.", modifier: 0 },
{ message: "The beekeeper performs a routine hive inspection. No change in bee population.", modifier: 0 },
{ message: "A light rain showers the area, providing some moisture for the bees. No change in bee population.", modifier: 0 },
{ message: "The bees spend a sunny day cleaning the hive and preparing for brood rearing. No change in bee population.", modifier: 0 },
{ message: "The hive experiences a natural fluctuation in bee population. No change in bee population.", modifier: 0 },
// Negative Events
{ message: "A late frost damages nearby flowers, reducing pollen availability. Bee population is slightly decreased.", modifier: -0.1 },
{ message: "A strong windstorm disrupts the hive entrance, causing bee deaths. Bee population is minimally decreased.", modifier: -0.05 },
{ message: "A nearby pesticide application contaminates flowers, harming foraging bees. Bee population is moderately decreased.", modifier: -0.2 },
{ message: "The drone population reaches its peak, leading to increased competition for resources. Bee population is slightly decreased.", modifier: -0.1 },
{ message: "The queen bee's egg-laying slows down due to age. Bee population slowly decreases.", modifier: -0.1 },
{ message: "A skunk raids the hive, preying on bees. Bee population is moderately decreased.", modifier: -0.2 },
{ message: "A nearby wildfire destroys a significant amount of flowering plants. Bee population is heavily decreased!", modifier: -0.5 },
{ message: "A sudden cold snap reduces foraging activity and bee survival. Bee population is moderately decreased.", modifier: -0.2 },
{ message: "A malfunctioning feeder leaks and dsub-containerns some bees. Bee population is minimally decreased.", modifier: -0.05 },
{ message: "The beekeeper accidentally injures some bees during hive inspection. Bee population is minimally decreased.", modifier: -0.05 },
{ message: "A predator attacks the hive! Bee population is slightly decreased.", modifier: -0.1 },
{ message: "Varroa mites infest the hive! Bee population is moderately decreased.", modifier: -0.2 },
{ message: "A harsh winter reduces the bee population. Bee population is heavily decreased!", modifier: -0.5 },
];
const randomIndex = Math.floor(Math.random() * events.length);
const event = events[randomIndex];
showErrorMessage(event.message);
return event.modifier;
}
// Random Event
setInterval(function() {
beeCount += Math.trunc(beeCount * getRandomEvent());
updateCounts();
}, 600000); // 1 hour in milliseconds
// Bee production every hour
setInterval(function() {
beeCount += hiveCount;
updateCounts();
}, 10000); // 10 seconds in milliseconds
// Honey production every second
setInterval(function() {
// bee production
honeyCount += beeCount;
// sales team
if (honeyCount >= 5 * salesCount && salesCount > 0) {
honeyCount -= salesCount * 5;
moneyCount += salesCount * 4 * 5;
}
updateCounts();
}, 1000); // 1 second in milliseconds
</script>
</body>
</html>